ORACLE 数据库left join on 左表关联条件为空时,丢失左表数据问题。

        前两天,在使用Oracle数据库,关联查询时使用left join on 发现并不能展现所有的左表数据,仔细查看数据库表是存在数据的,但是 关联字段存在空的情况,查询出的集合,关联条件为空的数据一整条都丢失了。因为平时使用的是mysql 并没有发现类似情况,所以做个记录。

        这里提供一个解决方法,在Oracle中在 Oracle 中,LEFT JOIN 和 LEFT OUTER JOIN 的区别在于对于无法匹配的记录的处理方式。
        LEFT JOIN:LEFT JOIN 会返回左边表(主表)的所有记录,而无论是否与右边表(副表)的记录匹配。如果在右边表中没有匹配的记录,则返回的结果集中副表的字段值将为 NULL。
        LEFT OUTER JOIN:LEFT OUTER JOIN 同样会返回左边表(主表)的所有记录,但是它会保留无法在右边表(副表)中找到匹配的记录,并将副表的字段值设置为 NULL。
所以,当主表与副表的连接字段在主表中的数据为空时,LEFT OUTER JOIN 会包含主表中的空记录,而 LEFT JOIN 不会包含这些空记录,返回的结果集中将缺少这些行。

总结:oracle中 对于使用使用left join on 出现左表数据缺失情况,可以尝试使用LEFT OUTER JOIN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值