簡體   English   中英

在ISN不匹配的地方顯示結果-SQL Server 2008

[英]Display results where there ISN'T a match - SQL Server 2008

我有以下查詢,顯示兩個表之間匹配的記錄:

select DISTINCT ug.name, ug.payroll_no, esr.assignment from user_group AS ug
inner join esrtraining AS esr on ug.payroll_no = SUBSTRING(esr.assignment, 2, 8)

我該如何做相反的事情? 例如,顯示“ User_Group”的名稱,如果沒有匹配項? 謝謝。

您可以在相同條件下使用NOT EXISTS進行此操作:

select DISTINCT ug.name, ug.payroll_no
from user_group AS ug
Where Not Exists
(
    Select  *
    From    esrtraining AS esr 
    Where   ug.payroll_no = SUBSTRING(esr.assignment, 2, 8)
)   

使用OUTER聯接而不是INNER,然后在第二個表中不可為空的列的WHERE子句中查找NULL:

select DISTINCT ug.name, ug.payroll_no, esr.assignment 
from user_group AS ug
left join esrtraining AS esr on ug.payroll_no = SUBSTRING(esr.assignment, 2, 8)
where esr.assignment is null

這稱為排除聯接。

暫無
暫無

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

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