Simuler FULL OUTER JOIN dans MySQL
MySQL lui-même ne prend pas en charge FULL OUTER JOIN. Cependant, vous pouvez le simuler en utilisant une combinaison d'opérateurs LEFT JOIN, RIGHT JOIN et set.
JOINTION EXTERNE COMPLÈTE LIMITÉE
Pour les cas où FULL OUTER JOIN ne produit pas de lignes en double, vous pouvez utiliser :
<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>
L'opérateur UNION élimine les lignes en double introduites par ce modèle de requête.
JOINTION EXTERNE COMPLÈTE générale
Dans le cas courant où des lignes en double peuvent se produire, utilisez :
<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>
L'opérateur UNION ALL combine les résultats de deux JOIN, et la clause WHERE supplémentaire garantit que seules les lignes avec t1.id NULL (ne correspondant pas dans LEFT JOIN) sont ajoutées au résultat final, éliminant ainsi les doublons.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!