在MySQL中模擬FULL OUTER JOIN
MySQL本身並不支持FULL OUTER JOIN。但是,您可以結合使用LEFT JOIN、RIGHT JOIN和集合運算符來模擬它。
有限的FULL OUTER JOIN
對於FULL OUTER JOIN不會產生重複行的案例,您可以使用:
<code class="language-sql">SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id UNION SELECT * FROM t1 RIGHT JOIN t2 ON t1.id = t2.id</code>
UNION運算符消除了此查詢模式引入的重複行。
通用的FULL OUTER JOIN
對於可能出現重複行的通用情況,請使用:
<code class="language-sql">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</code>
UNION ALL運算符組合兩個JOIN的結果,附加的WHERE子句確保只將t1.id為NULL(在LEFT JOIN中未匹配)的行添加到最終結果中,從而消除重複項。
以上是如何在 MySQL 中模擬 FULL OUTER JOIN?的詳細內容。更多資訊請關注PHP中文網其他相關文章!