如何在MySQL中进行FULL OUTER JOIN?

我想在MySQL中进行完全外部联接。这可能吗?MySQL是否支持完全外部联接?

回答:

您在MySQL上没有FULL

JOINS,但是可以肯定地模拟它们。

对于从该SO问题记录下来的代码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操作不会产生任何重复行的特殊情况。上面的查询取决于UNIONset运算符,以删除查询模式引入的重复行。我们可以通过对第二个查询使用 反联接

模式来避免引入重复的行,然后使用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

以上是 如何在MySQL中进行FULL OUTER JOIN? 的全部内容, 来源链接: utcz.com/qa/431788.html

回到顶部