有什麼更好的選擇?使用IN運算符還是EXISTS運算符?在性能和服務器負載方面。數據庫中是否有任何IN和/或EXISTS操作符的支持因素(如索引,約束或其他)?什麼是更好的選擇? IN運營商或EXISTS
下面是使用樣品查詢和EXISTS
SELECT * FROM Customers WHERE Customer_ID IN (SELECT Cust_ID FROM Sales);
和
SELECT Customer_ID FROM Customers WHERE EXISTS (SELECT Cust_ID FROM Sales);
如果這兩個查詢是不同的,什麼是更好的方法來計算或客戶名單?或者如果下面的查詢更復雜。
SELECT sub_id FROM subscription
WHERE start_date = CURDATE()
AND end_date > CURDATE()
AND sub_id NOT IN (SELECT DISTINCT sub_id FROM subscription
WHERE start_date < CURDATE());
是否可以將NOT IN運算符替換爲NOT EXISTS?在這種情況下,用NOT EXISTS重寫上面的查詢更好還是什麼?
也許是JOIN? – jarlh
兩者都不相同..你的意思是'客戶c在哪裏存在(從銷售s選擇1,其中s.Cust_ID = c.Customer_ID);' –
這可以幫助你。 https://stackoverflow.com/questions/24929/difference-between-exists-and-in-in-sql –