PDA

View Full Version : کمک در حل این کوئری



elahe software
دوشنبه 30 اردیبهشت 1392, 11:39 صبح
من این کوئری رو با not in حل کردم ولی میخوام با exists حل کنم.
میشه کمکم کنید!!!!!!


select CustomerID from Customers
where Customers.CustomerID not in
(select Customers.CustomerID from Customers inner join Orders on Customers.CustomerID=Orders.CustomerID )

محمد سلیم آبادی
دوشنبه 30 اردیبهشت 1392, 11:44 صبح
اول از همه کوئری که نوشتین یک join اضافی در subquery اش وجود داره که باید حذف بشه به این شکل:
select CustomerID
from Customers
where Customers.CustomerID not in
(select Orders.CustomerID
from Orders);

سپس به سادگی تبدیل به not exists می کنیم. انتخاب کن سطرهایی از جدول customer را که آن مشتری در جدول سفارشات(orders) سفارشی ثبت نکرده باشد
select CustomerID
from Customers C
where not exists
(select *
from orders
where customerID = C.customerID);

حمیدرضاصادقیان
دوشنبه 30 اردیبهشت 1392, 22:11 عصر
سلام
خوب در کد دومی که برای شما نوشته شد ، شرطی که شما در Join گذاشته بودید داره بررسی میشه و در واقع نیاز شما رو برطرف میکنه.
در اصل انگار Join رو داره ولی داره از جدول داخلی به خارجی Join ممیزنه و رکوردهای مورد نظر شما رو میاره.