【发布时间】:2018-11-02 02:28:59
【问题描述】:
我正在尝试使用我的 SQL 完成完全外部联接。
- FULL (OUTER) JOIN:当有匹配时返回所有记录 左表或右表
虽然这显然不受支持。我环顾四周,发现了这个公认的答案:https://stackoverflow.com/a/4796911/3859456
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
虽然这不会在我们进行联合时至少重复两次匹配的记录吗?如果没有,联合是否会自动将匹配的记录覆盖到 2 个表中?
例如
LEFT (OUTER) JOIN:返回左表的所有记录,然后 右表中的匹配记录
右(外)连接:返回所有 右表中的记录,和左表中的匹配记录 表格
Union Left-Outer-Table + (left-matched = right-matched)x2 + Right-Outer-Table
我确信答案在社区信任的情况下有效。但我仍然对它的工作原理感到困惑,希望有人能帮助我更好地理解。
【问题讨论】:
标签: mysql