首页/数据/SQL 速查/FULL OUTER JOIN 全外连接
本包目录(311 条)

FULL OUTER JOIN 全外连接

两边都保留、互不匹配的位置补 NULL:PostgreSQL 与标准 SQL 支持 FULL OUTER JOIN,MySQL 不支持,可用 LEFT/RIGHT 加 UNION 模拟。

SQL 速查数据更新于 2026-10-12

PostgreSQL

PostgreSQL
SELECT *
FROM a
FULL OUTER JOIN b ON a.k = b.k;

MySQL 模拟

MySQL 模拟
SELECT * FROM a LEFT JOIN b ON a.k = b.k
UNION
SELECT * FROM a RIGHT JOIN b ON a.k = b.k;
语义左独有 + 匹配 + 右独有
MySQL语法上不支持 FULL [OUTER] JOIN,需模拟
模拟细节UNION 会去重:两段都产出的匹配行合并为一份

易错点

  • MySQL 里写 FULL OUTER JOIN 会直接语法报错,按 LEFT/RIGHT 两段 UNION 模拟
  • 模拟时用 UNION ALL 会保留两份匹配行,需要 UNION 去重;而完全重复的业务行也会被合并,按需选择

数据来源与参考

  • MySQL 8.0 Reference Manual · JOIN Clause(无 FULL JOIN)
  • PostgreSQL Documentation · FULL OUTER JOIN
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌