تالار گفتمان مانشت
سوال پارسه درباره sql- فوری - نسخه‌ی قابل چاپ

سوال پارسه درباره sql- فوری - fatima2007 - 17 آذر ۱۳۹۱ ۱۱:۴۷ ب.ظ

سلام
کسی میتونه راجع به این جواب توضیح بده و بگه این کد چکار میکنه؟
جدول work شامل صفات #project و hours است


( select hours from work t where not exist(select * from work where hours>t.hours


تو جواب گفته بزرگترین عنصر ستون hours را به تعداد دفعات تکرارش در جدول تولید می کند.
این کد دقیقا چکار میکنه؟

سوال پارسه درباره sql- فوری - armin_b00ter - 18 آذر ۱۳۹۱ ۱۲:۵۳ ق.ظ

وقتی این کد داره اجرا میشه exist روی هر سطری از جدول work انجام میشه و با توجه به مقدار اون سطر چک میکنه که سطری وجود نداشته باشه که hours اون بزرگتر از hours رکورد فعلی باشه و در واقع hours فعلی ماکزیمم باشه و بنابراین اون جوابی که شما نوشتین رو بر می گردونه.

سوال پارسه درباره sql- فوری - azad_ahmadi - 18 آذر ۱۳۹۱ ۰۱:۵۷ ب.ظ

من با "به تعداد تکرارش" مشکل دارم، چرا که در select اولی فقط یک ستون رو انتخاب می کنه (ستون hours) پس اگه مقادیر تکراری در تاپل ها تکرار شده باشن اونا رو حذف می کنه.(در رابطه تاپل تکراری وجود ندارد). پس بزرگترین مقدار بدست میاد.
در واقع هردو جدول یکی هستن با اسامی متفاوت (t و work) که ستون های hours دو جدول رو با هم مقایسه کرده و بزرگترین مقداری بدست میاد که از همه مقادیر ستون hours بزرگتر باشه.

سوال پارسه درباره sql- فوری - armin_b00ter - 18 آذر ۱۳۹۱ ۰۲:۳۳ ب.ظ

select به صورت پیش فرض به صورت all هست تو sql یعنی عناصر تکراری هم هستن. مگر اینکه صراحتا اعلام کنید select distinct

سوال پارسه درباره sql- فوری - csharpisatechnology - 18 آذر ۱۳۹۱ ۰۳:۰۲ ب.ظ

این که مشخصه. توی کتاب پوران(محمدکریم سهرابی+هزاد مقصودی) + کتاب راهیان ارشد هم می تویند این مباحث رو مطالعه کنید که خیلی زیبا درس دادن.

RE: سوال پارسه درباره sql- فوری - fatima2007 - 19 آذر ۱۳۹۱ ۰۳:۰۷ ب.ظ

(۱۸ آذر ۱۳۹۱ ۱۲:۵۳ ق.ظ)armin_b00ter نوشته شده توسط:  وقتی این کد داره اجرا میشه exist روی هر سطری از جدول work انجام میشه و با توجه به مقدار اون سطر چک میکنه که سطری وجود نداشته باشه که hours اون بزرگتر از hours رکورد فعلی باشه و در واقع hours فعلی ماکزیمم باشه و بنابراین اون جوابی که شما نوشتین رو بر می گردونه.



ممنونم.مرسی