[英]Convert sub-query with “NOT IN” operator to join with multiple tables
我需要將以下子查詢轉換為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%'
)
SELECT *
FROM Consultants
WHERE Consultants.ConsIntID
NOT IN (SELECT Links.ToID
FROM Links
JOIN Reminders ON(Links.FromID = Reminders.RemIntID)
WHERE ApptSubType = 'Placed'
AND ToID LIKE 'CS%')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.