数据库
首页 > 数据库> > 如何在MySQL中进行全面的连接?

如何在MySQL中进行全面的连接?

作者:互联网

我想在MySQL中进行全外连接.这可能吗? MySQL是否支持Full Outer Join?

解决方法:

你在MySQL上没有FULL JOINS,但你可以肯定emulate them.

对于从this SO question转录的代码SAMPLE,您有:

有两个表t1,t2:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id

上面的查询适用于FULL OUTER JOIN操作不会产生任何重复行的特殊情况.上面的查询依赖于UNION集合运算符来删除查询模式引入的重复行.我们可以通过对第二个查询使用反连接模式来避免引入重复行,然后使用UNION ALL集合运算符来组合这两个集合.在更一般的情况下,FULL OUTER JOIN将返回重复的行,我们可以这样做:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
WHERE t1.id IS NULL

标签:outer-join,sql,mysql,join,full-outer-join
来源: https://codeday.me/bug/20190910/1802194.html