【发布时间】:2022-01-22 05:48:30
【问题描述】:
【问题讨论】:
-
哪个
DBMS,到目前为止你尝试了什么,你卡在哪里了? -
我为此做了一个fiddle,并在他们测试时给出了第一个答案。享受吧!
标签: sql-server select
【问题讨论】:
DBMS,到目前为止你尝试了什么,你卡在哪里了?
标签: sql-server select
您可以使用not exists 条件:
SELECT *
FROM campaign c
WHERE NOT EXISTS (SELECT *
FROM jobs j
WHERE j.campaignid = c.campaignid)
【讨论】:
你可以这样使用:
select * from campaign
where 1 = 1
and campaignid is not null
and campaignid not in (select campaignid from jobs)
【讨论】:
create table #Campaign (CampaignId int NULL)
create table #Jobs (JobId int, CampaignId int)
insert into #Campaign values (1),(2),(3),(4),(100),(55)
insert into #Jobs values (1,1),(2,2),(3,3),(4,4),(5,1),(6,3),(7,3)
select distinct C.CampaignId
from #Campaign as C
where not exists(select 1 from #Jobs as J where C.CampaignId = J.CampaignId)
结果是 55 100
【讨论】:
或者您可以使用 id 为 null 的 LEFT OUTER JOIN:
SELECT c.* from campaign c
LEFT OUTER JOIN jobs j ON j.CampaignId = c.CampaignId
WHERE j.CampaignId IS NULL;
【讨论】: