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