AK9*_*K91 2 sql t-sql sql-server left-join where-clause
询问
SELECT ID, Name, Phone
FROM Table1
LEFT JOIN Table2 ON Table1.ID = Table2.ID
WHERE Table2.ID IS NULL
Run Code Online (Sandbox Code Playgroud)
问题
Table2完全省略吗?因为根本没有加入?任何帮助将非常感激.
您在问题中的查询基本上等同于以下查询:
SELECT ID, Name, Phone
FROM Table1
WHERE NOT EXISTS
(
SELECT 1
FROM Table2
WHERE Table1.ID = Table2.ID
)
Run Code Online (Sandbox Code Playgroud)
这意味着它选择Table1中表2中没有相关记录的所有记录.
两个查询的执行计划很可能是相同的(就我个人而言,当他们制定不同的执行计划时,我从未见过这种情况,但我不排除这种情况),因此两个查询应该同样有效,并且它是由您来决定左连接或存在语法是否对您更具可读性.