sql – subselect vs outer join

考虑以下2个查询
select tblA.a,tblA.b,tblA.c,tblA.d
from tblA
where tblA.a not in (select tblB.a from tblB)

select tblA.a,tblA.d
from tblA left outer join tblB
on tblA.a = tblB.a where tblB.a is null

哪个会表现更好?我的假设是,一般情况下,连接会更好,除非子选择返回非常小的结果集.

解决方法

RDBMS“重写”查询以优化它们,因此它取决于您正在使用的系统,我猜它们最终会在大多数“好”数据库上提供相同的性能.

我建议选择一个更清晰,更容易维护的,对于我的钱,这是第一个.调试子查询要容易得多,因为它可以独立运行以检查是否合理.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...