簡體   English   中英

根據多個列查找一個表中存在但另一個表中不存在的記錄

[英]Find records that exists in one table but not another based on multiple columns

我有兩個表,計費和每周。
我需要找到帳單表格中的值,而不是每周表格中的值,但是我需要以多個列為基礎。
我有一個查詢僅適用於一列:

SELECT * from billing
outer apply
(select * from weekly where billing.[email]= weekly.[email])a
where a.[email] is null

有時我的數據中的電子郵件可能會更改。
因此,如果電子郵件不匹配,我需要添加一些內容,請檢查名字和姓氏,但不知道該怎么做。

您可以使用exists運算子:

SELECT * 
FROM   billing
WHERE  NOT EXISTS
       (SELECT * 
        FROM   weekly 
        WHERE  billing.[email] = weekly.[email] OR
               (billing.[firstName] = weekly.[firstName] AND
                billing.[lastName] = weekly.[lastName]
               )
       )

您可以使用NOT EXISTS運算符根據電子郵件或姓氏和名字排除每周匹配的任何記錄。

SELECT bl.*
        FROM billing bl
        WHERE NOT EXISTS (
                SELECT 1
                FROM weekly wk
                WHERE (bl.[email] = wk.[email]
                    OR (
                        bl.firstName = wk.firstName
                        AND bl.lastName = wk.lastName))
                    AND bl.lenderName <> wk.lenderName --added this check
                )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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