oracle的全连接查询可以直接用full on,但是在mysql中没有full join,mysql使用union实现全连接
oracle的全连接
select * from a full join b on a.id = b.id
mysql的全连接
select * from a left join b on a.id = b.id union select * from a right join b on a.id = b.id
-
注:mysql利用左连接和右连接分别查询出左右两边的数据
-
然后利用union去重合并(去掉两边都有的重复数据)
全连接就是要查询两个表查询结果的并集
内连接或者等值连接就是要查询两个表的交集
-
左(外)连接
-
右(外)连接
oracle中的全连接问题
数据库中的数据:
全连接:
完整外部联接返回左表和右表中的所有行。
当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。
如果表之间有匹配行,则整个结果集行包含基表的数据值。
select * from book as a full outer join stu as b on a.sutid = b.stuid
结果: