۱
subtitle
ارسال: #۱
  
حل query هایی با شرط Exists
سوال:
پایگاه داده با جداول زیر داده شده:
آنگاه شرح مناسب برای query روبه رو کدام گزینه است؟
۱)اسامی مشتریانی را می دهد که در تمام شعب شهرbropklyn حساب باز کرده اند.
۲)اسامی مشتریانی را می دهد که در هیچ یک از شعب شهرbrooklyn حساب باز نکرده اند.
۳)اسامس مشتزیانی را میدهد که در شعب شهر brooklyn به صورت تکراری حساب باز کرده اند.
۴)اسامی مشتریانی را میدهد که در شعب شهر Brooklyn به صورت غیرتکراری حساب باز کرده اند.
دوستان این سوال چه جوری حل میشه؟اصلا این سوالایی که Exist داره قلقش چیه؟من اصلا نمیتونم حلشون کنم.
پایگاه داده با جداول زیر داده شده:
آنگاه شرح مناسب برای query روبه رو کدام گزینه است؟
branch(branch_name,branch_city,assets)
account(acc_number,branch_name,balance)
depositor(customer_name,acc_number)
select distinct S.customer_name
from depositor as S
where not exist((select branch_name
from branch
where branch_city='Brooklyn')
wxcept
(select R.branch_name
from deporistor as T,account as R
where T.account_number = R.account_number and S.customer_name=T.customer_name))
account(acc_number,branch_name,balance)
depositor(customer_name,acc_number)
select distinct S.customer_name
from depositor as S
where not exist((select branch_name
from branch
where branch_city='Brooklyn')
wxcept
(select R.branch_name
from deporistor as T,account as R
where T.account_number = R.account_number and S.customer_name=T.customer_name))
۱)اسامی مشتریانی را می دهد که در تمام شعب شهرbropklyn حساب باز کرده اند.
۲)اسامی مشتریانی را می دهد که در هیچ یک از شعب شهرbrooklyn حساب باز نکرده اند.
۳)اسامس مشتزیانی را میدهد که در شعب شهر brooklyn به صورت تکراری حساب باز کرده اند.
۴)اسامی مشتریانی را میدهد که در شعب شهر Brooklyn به صورت غیرتکراری حساب باز کرده اند.
دوستان این سوال چه جوری حل میشه؟اصلا این سوالایی که Exist داره قلقش چیه؟من اصلا نمیتونم حلشون کنم.
۱
ارسال: #۲
  
حل query هایی با شرط Exists
این همون تقسیمه و گزینه ۱ صحیحه
Exist اگر حاصل جستجوی Select بعدش، تاپل داشته باشه، True بر می گردونه (همون Any سابقه)
این پرس و جو مشتری هایی رو بر می گردونه که در همه شعب شهر بروکلین حساب دارن
Exist اگر حاصل جستجوی Select بعدش، تاپل داشته باشه، True بر می گردونه (همون Any سابقه)
این پرس و جو مشتری هایی رو بر می گردونه که در همه شعب شهر بروکلین حساب دارن
۱
ارسال: #۳
  
حل query هایی با شرط Exists
با تشکر از توضیحات bijibuji من هم توضیحاتی اضافه میکنم.
برای هر اسم که در رابطه depositor وجود دارد ما باید مراحل داخل not Existرا انجام دهیم:
شعباتی که در شهر بروکلین واقعند رو به دست میاریم و شعباتی رو که این فرد در اون حساب داره رو ازش کم میکنیم.
چون شرط not exist هست پس اگر حاصل این تفریق هیچ تاپلی رو نتیجه نداد یعنی false شد پس اون اسم رو به عنوان جواب بر میگردونیم.
حالا در چه صورت حاصل false میشه؟
وقتی که شعباتی که این فرد در اون حساب داره برابر همه شعبات شهر بروکلین بشه.
برای هر اسم که در رابطه depositor وجود دارد ما باید مراحل داخل not Existرا انجام دهیم:
شعباتی که در شهر بروکلین واقعند رو به دست میاریم و شعباتی رو که این فرد در اون حساب داره رو ازش کم میکنیم.
چون شرط not exist هست پس اگر حاصل این تفریق هیچ تاپلی رو نتیجه نداد یعنی false شد پس اون اسم رو به عنوان جواب بر میگردونیم.
حالا در چه صورت حاصل false میشه؟
وقتی که شعباتی که این فرد در اون حساب داره برابر همه شعبات شهر بروکلین بشه.
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close