سلام دوستان
زمانی که بخوایم اسم کارمندی که بالای ۴۰ هزار فروخته رو از دیتابیس بگیریم به نظرتون کدوم کوئری مناسبتر هستش
Select first_name from employee where id in (select works_with.emp_id from works_with where works_with.total_sale > 40000)
اینکه بیایم از selectهای تو در تو استفاده کنیم
select Employee.first_name from Employee INNER JOIN Works_With ON Employee.id = Works_With.id
WHERE Works_With.total_sale > 40000
یا اینکه از جوینها استفاده کنیم ؟
در کل؛ چه موقع از joinها استفاده میشه و چه موقع از selectهای تو در تو؟
برداشتی که من داشتم این هستش که؛ زمانی که بخوایم اسم و فامیل و total_sale رو از جداول بگیریم باید از join استفاده بشه ولی زمانی که بخوایم اسامی افرادی که بالای مثلا ۲۰۰۰۰ فروش داشتند رو بگیریم از select تو در تو استفاده میشه.
مثلا این سوال:
آیدی تمام مشتریانی که از ما خریدی نکردند:
SELECT CustomerID FROM Customers where CustomerID not in (select CustomerID from Orders) ;
اینجا دیگه از join نیازی نیست استفاده بشه و با selectهای تو در تو مشکل حل میشه