首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条件为null的左连接postgresql

条件为null的左连接postgresql
EN

Stack Overflow用户
提问于 2021-06-04 16:27:55
回答 1查看 15关注 0票数 0

大家好,我正在使用postgresql-13,我被困在这里并尝试了,但仍然没有得到我想要的结果:

代码语言:javascript
复制
TABLE_A
ID|SEQ|Name
1|7|Dash
2|8|Goo

TABLE_B
REF_ID|Country
1|India
3|England

TABLE_C
SEQ|Country
7|America
8|Denmark

所以我想从TABLE_A做一个左连接来获取TABLE_B中的国家,但是如果在TABLE_B中找不到国家,我加入到TABLE_C中,这样Dash就会有印度国家,因为它可以在TABLE_B中找到,即使你加入SEQ到TABLE_C,它应该是美国,但我们可以在TABLE_B中找到"Dash“ID,所以我们从TABLE_B中获取国家。对于"Goo",他应该有一个国家丹麦,因为"Goo”ID在TABLE_B中找不到。

所以基本上左连接应该是

代码语言:javascript
复制
Select a.name,
case when b.country is null then c.country
when b.country is not null then b.country
end country_name
from TABLE_A a
left join TABLE_B b on a.ID=b.REF_ID
left join TABLE_C c on a.SEQ=c.Country

这是正确的查询吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-04 17:03:26

table_a和table_c之间的密钥错误。您必须将c.country替换为c.seq.Your查询应为

代码语言:javascript
复制
Select a.name,
case when b.country is null then c.country else b.country end country_name
from TABLE_A a
left join TABLE_B b on a.ID=b.REF_ID
left join TABLE_C c on a.SEQ=c.seq
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67833933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档