1.IN 和 EXITS的差別
SELECT * FROM Table1 WHERE (欄位名稱1,欄位名稱2) IN (SELECT 欄位名稱1,欄位名稱2 FROM Table2)
SELECT Name FROM Table1 WHERE EXISTS (SELECT * FROM Table2 WHERE Table2.sn = Table1.sn AND Name = 'Wheels')
2.子查詢可以單一傳回值(單一欄位(Column),單一筆(row)),也可以傳回單一欄位多筆資料(但必須改用IN)
3.我們也很常將子查詢所得到的資料集合當作一個暫時的虛擬資料表給主查詢使用
4.總之,EXISTS 是用來測試內查詢有沒有產生任何結果。如果有的話,系統就會執行外查詢中的 SQL。若是沒有的話,那整個 SQL 語句就不會產生任何結果。