MySQL ne prend pas en charge FULL OUTER JOIN : une solution
Le FULL OUTER JOIN
Standard SQL n'est pas directement pris en charge dans MySQL. L'instruction SQL fournie entraînera une erreur de syntaxe.
Approche alternative : combiner les jointures GAUCHE et DROITE
Pour obtenir l'équivalent d'un FULL OUTER JOIN
dans MySQL, vous pouvez combiner les opérations LEFT JOIN
et RIGHT JOIN
en utilisant UNION
. Cette approche fusionne efficacement les résultats des deux jointures pour inclure toutes les lignes des deux tables, en faisant correspondre lorsque cela est possible.
Exemple utilisant UNION :
<code class="language-sql">SELECT * FROM a LEFT JOIN b ON a.id = b.id UNION SELECT * FROM a RIGHT JOIN b ON a.id = b.id</code>
Cette requête effectue d'abord un LEFT JOIN
(toutes les lignes de la table de gauche, a
, et les lignes correspondantes de la table de droite, b
). Ensuite, un RIGHT JOIN
(toutes les lignes de la table de droite, b
, et les lignes correspondantes de la table de gauche, a
) est exécuté. Enfin, UNION
combine les résultats, éliminant les lignes en double. Cela reflète efficacement la fonctionnalité d'un FULL OUTER JOIN
.
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!