作者flakchen (flak)
看板Database
標題Re: [SQL ] 哪一種SQL文效率比較高呢??
時間Sun Nov 19 15:02:16 2006
※ 引述《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
1F:→ webberhan:你的根據是?可以分享一下推論過程嗎? 11/20 13:46
2F:推 jerryen:因為那是outer join吧 11/20 17:27