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
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/7196906391.html
