有没有更好的方法来返回没有左连接匹配的行?

问题描述 投票:0回答:1

我们在 MS SQL 数据库中有两个表 - 表 1 和表 2,并且我们正在尝试识别表 1 中与表 2 中“不”匹配的行。 现在,这是使用嵌套视图完成的: 视图1:

CREATE VIEW vw_View1 AS SELECT t1.col1, t2.col2 FROM Table1 t1 LEFT JOIN Table2 t2 on t1.col3 = t2.col4 GO

视图2:

CREATE VIEW vw_View2 AS SELECT col1 FROM vw_View1 WHERE (col2 is null) GO

我知道另一种方法可以在没有嵌套视图的情况下实现此目的,但到目前为止,这导致执行时间缓慢:

SELECT t1.col1 FROM Table1 t1 WHERE t1.col3 NOT IN ( SELECT t2.col4 FROM Table2 t2 )

是否有更好的方法来完成此任务而不使用嵌套视图或“NOT IN”?

sql-server view nested left-join
1个回答
0
投票

SELECT t1.col1, t2.col2 FROM Table1 t1 LEFT JOIN Table2 t2 on t1.col3 = t2.col4 WHERE (col2 is null)

	
© www.soinside.com 2019 - 2024. All rights reserved.