簡體   English   中英

使用“ NOT IN”運算符轉換子查詢以與多個表聯接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM