关于fulljoin的用法

涉及到3个表,以pono字段作为连接,连接表a.b.c,由于3个表中都几个pono不在其他两个表里面,所以不能用 left join和right join。但是用full join就出现个问题,当两个表的pono没有匹配到一块的时候(一个有pono,有数据,一个没有pono和下面的数据),只显示了数据,pono显示成了空值。如图所示,怎么才能把pono也显示出来呢。

image.png

SQL 帆软用户21wlka79tN 发布于 2024-6-28 18:33
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2024-6-28 21:10

1、自己处理一下数据,把三个表拼起来。然后对pono字段去重复,这样pono就会有所有的内容了

2、以上面处理好的结果为基础,用pono字段去分别关联a   b   c这三个表就行了!!

最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-6-29 06:50

你在select 的时候把三张表的pono都查询出来,再外套一个子查询判断一下:

select (case when ponoa is null then (case when ponob is null then ponoc else ponob end) else ponoa end) ponor from

(select a.pono ponoa,b.pono ponob, c.pono ponoc from a full join b on a.pono=b.pono full join c on a.pono=c.pono) t

最佳回答
0
Zzz1002Lv2见习互助
发布于2024-7-1 15:16

full join 可以和coalesce一起使用返回第一個不為空的值

  • 3关注人数
  • 208浏览人数
  • 最后回答于:2024-7-1 15:16
    请选择关闭问题的原因
    确定 取消
    返回顶部