MySQL FULL JOIN ?
Dans MySQL, l'opération FULL JOIN n'est pas directement prise en charge. Cependant, il est possible d’obtenir un résultat similaire en utilisant une combinaison de LEFT JOIN et RIGHT JOIN. Voici comment procéder :
SELECT t1.column1, t2.column2 FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.id = t2.id UNION ALL SELECT t1.column1, NULL FROM table1 AS t1 RIGHT JOIN table2 AS t2 ON t1.id = t2.id WHERE t2.id IS NULL
Dans cette requête, LEFT JOIN récupère toutes les lignes de la table1 et les fait correspondre aux lignes correspondantes de la table2 en fonction de la colonne id. Le RIGHT JOIN récupère toutes les lignes de la table2 et les fait correspondre aux lignes correspondantes de la table1. L'opérateur UNION ALL combine les résultats des deux jointures.
Disons que nous avons deux tables, "Personnes" et "Commandes", avec les données suivantes :
Persons | ||
---|---|---|
P_Id | LastName | FirstName |
1 | Hansen | Ola |
2 | Pettersen | Kari |
3 | Svenson | Tove |
Orders | |
---|---|
OrderNo | P_Id |
22456 | 1 |
24562 | 1 |
77895 | 2 |
44678 | 2 |
34764 | 3 |
À obtenez le résultat suivant en utilisant la requête ci-dessus :
LastName | FirstName | OrderNo |
---|---|---|
Hansen | Ola | 22456 |
Hansen | Ola | 24562 |
Pettersen | Kari | 77895 |
Pettersen | Kari | 44678 |
Svenson | Tove | 34764 |
Remplacez simplement table1 par "Persons" et table2 par "Commandes" dans la requête et exécutez-la.
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!