一个是Demand表,另一个表是VarientCountry我只想要来自需求表的变量,在varientcountry表中没有国家映射
需求表
Id Varient Country
1 v1 India
2 v2 NULL
3 v3 Nepal
4 v4 Japan
VarientCountry Table
Id Varient Country
1 v1 India
2 v1 Uk
3 v2 China
4 v1 Indonisia
5 v3 Nepal
6 v4 Egland
7 v4 Null
我想要像
那样的例外结果Id Varient Country
1 v1 UK
3 v2 China
6 v4 England
答案 0 :(得分:2)
如果没有ID,你可以使用except
:
select Varient, Country
from VarientCountry
except
select varient, country
from demand;
如果您需要ID,我会选择not exists
:
select vc.*
from varientcountry vc
where not exists (select 1
from demand d
where d.varient = vc.varient and
(d.country = vc.country or d.country is null and vc.country is null)
);
答案 1 :(得分:1)
您必须使用except
一个。
您必须从demand
表中的except
表varientCountry
记录中选择记录。这是正确的。
select varient, Country
from demand
except
select varient, country
from varientCountry;
您将获得以下输出
Id Varient Country
1 v2 Null
2 v4 Japan