看板 Database 關於我們 聯絡資訊
※ 引述《ankasc (初夏。)》之銘言: : : 狀況二: : : 比較兩個表單的差異的query, : : (例如要看表1當中的資料, 有哪些是表2中沒有的) : : 用 LEFT JOIN 還是 巢狀式query 比較好?? : : SELECT TB1.fd1 : : FROM TB1 LEFT JOIN TB2 ON TB1.fd1 = TB2.fd2 : : WHERE TB2.fd2 IS NULL : : 還是 : : SELECT TB1.fd1 : : FROM TB1 : : WHERE TB1.fd1 NOT IN (SELECT TB2.fd2 FROM TB2) : : 謝謝!! : 據我所知,以SQL Server來講,in 的效果是最差的, : 有可能是與set的實作方式有關,記得之前在MSDN上有看過文章。 就MS-SQL而言,IN 的效果並不差,差的是NOT IN LEFT OUTER JOIN的效率也好不到哪裡,如果必須取得「不存在於...」 的資料,請用NOT EXISTS SELECT TB1.fd1 FROM TB1 WHERE NOT EXISTS (SELECT top 1 1 FROM TB2 WHERE TB1.fd1 = TB2.fd2 ) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.166.116
webberhan:你的根據是?可以分享一下推論過程嗎? 11/20 13:46
jerryen:因為那是outer join吧 11/20 17:27