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

پرسوجوی SQLبا دستور EXISTS - abji22 - 22 آذر ۱۳۹۳ ۱۰:۵۲ ب.ظ


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

لطفا مفصل توضیح بفرمایید

RE: پرسوجوی SQLبا دستور EXISTS - m@hboobe - 23 آذر ۱۳۹۳ ۰۱:۰۷ ق.ظ

اونجوری که خودم متوجه این سوال شدم رو میگم شاید کمکتون کنه.....

اول صورت سوال رو یکم توضیح میدم گفته که "نام مشتریان که در همه شعبه های شهر تهران حساب بانکی دارند." خب اینجا خواسته بررسی کنه که یکسری رکورد در مجموعه جواب وجودا دارند یا خیر.
خاصیت زیر مجموعه ایی استفاده میکنه یعنی اینکه نام تمام شعبه ها تهران مجموعه اصلی و نام مشتریان مجموعه کوچکتری است که درون نام تمام شعبه ها وجود داره.

پس تا اینجا فهمیدیم باید دو تا دستور select بنویسیم برای بخش شرط و توی بخش select اصلی چون باید اسم ها متمایز باشند دستور Distanct رو مینویسیم

یه نکته وجود داره که همون صفحه قبل توضیح داده که برای نوشتن این دستور میتونیم هم بصورت مستقیم از Contains استفاده کنیم و روش دوم استفاده از exists و except هست اثبات این قضیه مربوط به مجموعه ها میشه (!)

[tex]Y\subseteq X\equiv X\: Contains\: Y\: \equiv\: NOTExists(Y\: Except\: X)[/tex]

پس باید توی بخش شرط اون select تو در تو رو به این صورت بنویسیم که
not exists
(زیر مجموعه بزرگتر = نام تمام شعبه های تهران
except
زیر مجموعه کوچیکه = نام تمام افرادی که حساب دارند
)

RE: پرسوجوی SQLبا دستور EXISTS - abji22 - 23 آذر ۱۳۹۳ ۰۵:۵۱ ب.ظ

عالی بود نگاه کردم ۲تا از تست ها هم همینجوری حل میشدن