开发者社区> 问答> 正文

如何在MySQL中进行FULL OUTER JOIN?

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

展开
收起
保持可爱mmm 2020-05-08 10:19:56 498 0
1 条回答
写回答
取消 提交回答
  • 您在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 来源:stack overflow

    2020-05-08 10:20:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像