USE pubs GO SELECT DISTINCT pub_name FROM publishers WHERE EXISTS (SELECT * FROM titles WHERE pub_id = publishers.pub_id AND type = 'business') GO-- Or, using the IN clause:USE pubs GO SELECT distinct pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titles WHERE type = 'business') GO 看看这个例子,就知道了
逐条判断 本来并不快,但是它可以 在有符合条件的记录就退出
一般情况下,判断所有记录总是比判断部分记录慢些的exists的效率实际跟子查询的数据也有很大关系
in:先查询再判断
exists效益高
GO
SELECT DISTINCT pub_name
FROM publishers
WHERE EXISTS
(SELECT *
FROM titles
WHERE pub_id = publishers.pub_id
AND type = 'business')
GO-- Or, using the IN clause:USE pubs
GO
SELECT distinct pub_name
FROM publishers
WHERE pub_id IN
(SELECT pub_id
FROM titles
WHERE type = 'business')
GO
看看这个例子,就知道了