美文网首页
mysql中实现full join

mysql中实现full join

作者: 夏天的吃瓜群众 | 来源:发表于2018-02-23 13:58 被阅读0次

因为MySQL不支持FULL JOIN,下面是替代方法:

left join + union(可去除重复数据)+ right join

select * from A left join B on A.id = B.id (关联条件,如where )union select * from A right join B on A.id = B.id (关联条件,如where )

可以 A Left JOIN B UNION B Left JOIN A

PS:

这里的原理,是因为 UNION 操作, 会合并掉重复的。

前面的

A LEFT JOIN B , 包含了 A与B 都有的, 与 A 有 B 没有的。

后面的

B LEFT JOIN A, 包含了 A与B 都有的, 与 B 有 A 没有的。

UNION 处理以后,最后结果就是包含

A与B 都有的, 与 A 有 B 没有的。与 B 有 A 没有的。

但是, 如果你 A LEFT JOIN B 查询的时候, 查询本身就包含 重复记录的话, 那么这种 UNION 的方式恐怕没法使用了。

相关文章

网友评论

      本文标题:mysql中实现full join

      本文链接:https://www.haomeiwen.com/subject/nckxxftx.html