我们在 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”?
SELECT t1.col1, t2.col2
FROM Table1 t1
LEFT JOIN Table2 t2 on t1.col3 = t2.col4
WHERE (col2 is null)