oracle表关联问题 -- full join

关于工作中使用sql进行表关联引发的问题

前言: 是在工作中需要将两个查询结果集关联起来并得到最后的数据。

问题: 我们需要在将两个查询结果集关联起来并得到最后的数据,但是在关联时遇见了一个问题,我们确定了关联的条件,但是却无法确定两张表的数据,因为两张表的数据数量并不是可控的。

解决方法: full join

特点: 这种连接方式将两张表进行关联,可以完美避开两张表的数据都不可控的情况。
当 A 表 中有 10 条数据,B 表中有 3 条数据,其中通过关联条件关联有 1 条关联成功。那么,我们通过full join 进行关联将出现 10 + 3 - 1 条数据。 (A,B表数据的和减去了关联成功的重复条数结果就是最后的结果集。这个结果将两张表的数据完全结合到了一起。)

同理对比:

条件一致的情况下:

A表 10条数据
B表 3条数据
关联成功的数据 1条

其中
A left join B 10条 查询结果为A表的条数
A right join B 3条 查询结果为B表的条数
A inner join B 1条 只筛选符合条件的
A full join B 12条 查询所有,去除重复的
A B 产生笛卡尔积 30条

参考链接–站内其他博客

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值