我希望這個問題沒有被問到,我試圖尋找類似的問題,但可能使用了錯誤的關鍵字。總之,我碰到一個情況,我必須尋找誰從來沒有下訂單的客戶,所以在查詢運行這樣的:改善選擇不在
SELECT * FROM customers
where customers_id NOT IN (SELECT customers_id FROM orders)
我看,這是不好的嵌套SELECT
S,所以什麼是更好的選擇?
此外,我應該做select *
還是應該指定字段,我還在某個地方看過,最好是select *
?
謝謝大家提前。
看到的答案後,我有一個疑問EXISTS的優化。你可以請時間StilesCrisis和Joop Eggen的解決方案,看看哪一個跑得更快?感謝 – 2012-02-04 08:03:21
礦:顯示行0 - 29(5390總計,查詢花費0.0155秒) StilesCrisis:顯示行0 - 29(5390總計,查詢花費0.0090秒) 喬普埃根:顯示行0 - 29(5390總共查詢花費0.0039秒) 注:我每跑一次,可能需要運行多次獲得平均時間的權利。此外,對於喬普的一個我用SELECT *,想知道如果事情可以改善,如果我不與特定的字段 – mr1031011 2012-02-04 08:35:48
選擇不管你相信與否,之後多次運行喬普的答案仍然是在我的情況下更快。 – mr1031011 2012-02-04 08:39:36