sql - 如何在 MySQL 中执行 FULL OUTER JOIN?

标签 sql mysql join outer-join full-outer-join

我想做一个 full outer join 在 MySQL 中。这可能吗? MySQL 是否支持全外连接

最佳答案

你在 MySQL 中没有完全连接,但你可以确定 emulate them .

对于从 this Stack Overflow question 转录的代码样本你有:

有两个表 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

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

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

关于sql - 如何在 MySQL 中执行 FULL OUTER JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41887803/

相关文章:

c# - 列不存在服务器错误 - 但 sql server 管理说它确实存在

sql-server - 使用子查询与派生表进行内连接

join - ASP 经典 - 我如何连接字符串数组/连接/内爆不起作用

python - 与 NA 左连接

php - SQL 好友列表创建

mysql - 无法在mysql中执行准备好的语句

sql - R 中 SQL 的 IN 关键字的等价物是什么?

MySQL - 1toN,从 table1 中选择具有 table2.attribute=1 和 table2.attribute=2 的项目

php 在 mysql 更新查询中使用两个数组

MySQL预订网站: query/db optimization