Ram*_*dhi 1 sql sql-server join subquery
我需要将以下子查询转换为JOIN.这里我在内部查询中已经有了JOIN运算符.请帮忙.
SELECT *
FROM Consultants
WHERE Consultants.ConsIntID
NOT IN (SELECT Links.ToID
FROM Links JOIN Reminders
ON Links.FromID = Reminders.RemIntID
AND ApptSubType = 'Placed'
AND ToID LIKE 'CS%')
好吧所以你可能不应该把它改成一个联接我会用NOT EXISTS这样做的理由在这里说明
我还替换了您的古老连接语法并添加了别名以清除它.下面显示的方法已经被接受了大约22年的标准,并且是编写查询的首选方法.
SELECT C.*
FROM Consultants as C -- aliases are very useful for clarity
WHERE
NOT EXISTS (
SELECT 1
FROM Links as L
INNER JOIN Reminders as R --New join syntax
ON L.FromID = R.RemIntID
WHERE C.ConsIntID = L.ToID
AND ApptSubType = 'Placed'
AND ToID LIKE 'CS%'
)
Run Code Online (Sandbox Code Playgroud)