作者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