Comment joindre deux tables dans MySQL sans utiliser de jointure ?
La clause “JOIN” est utilisée pour combiner les tables dans MySQL, mais la table peut également être jointe sans l'utiliser. Plus spécifiquement, “UNION”, “UNION ALL” et la virgule “,” sont trois manières différentes qui peuvent produire le même résultat que la clause “JOIN”. La virgule peut être utilisée à la place de la clause “JOIN”, tandis que “UNION” ou “UNION ALL” sont utilisées avec une instruction “SELECT” pour joindre les enregistrements de deux tables.
Ce post expliquera comment joindre deux tables dans MySQL :
- Méthode 1 : Utiliser la virgule « , »
- Méthode 2 : Utilisation des opérateurs « UNION » ou « UNION ALL »
Méthode 1 : Joindre deux tables dans MySQL en utilisant « , »
Dans MySQL, les tables peuvent être jointes en utilisant « , » au lieu de la clause « JOIN ». Sa syntaxe est donnée ci-dessous :
SELECT *
FROM [table1-name], [table2-name];La principale différence réside seulement dans le remplacement du mot-clé “JOIN” par “,”:
SELECT *
FROM [table1-name] JOIN [table2-name];Utilisez la syntaxe de la virgule « , » avec la clause « WHERE » pour joindre les tables en fonction d'une condition particulière. La syntaxe est donnée ci-dessous :
SELECT *
FROM [table1-name], [table2-name]
WHERE [condition];Exemple 1 : Utilisation de “, ” sans condition
Joignons les tables « produits » et « userdata » en spécifiant « , » comme suit :
SELECT *
FROM products, userdata;Sortie
La sortie montre que les tables « produits » et « userdata » ont été jointes sans utiliser la clause « JOIN ».
Exemple 2 : Utilisation de “, ” avec condition
Voyons un exemple de jointure de deux tables où userdata.id est supérieur à 2 :
SELECT *
FROM products, userdata
WHERE userdata.id > 2;Sortie
La sortie a montré que les tables sélectionnées avaient été jointes en fonction de la condition donnée.
Méthode 2 : Joindre deux tables dans MySQL en utilisant « UNION » ou « UNION ALL »
Dans MySQL, les opérateurs « UNION » ou « UNION ALL » peuvent être utilisés pour fusionner les ensembles de résultats de plusieurs instructions SELECT. La syntaxe est donnée ci-dessous :
SELECT * FROM [table1-name]
UNION | UNION ALL
SELECT * FROM [table2-name]La syntaxe ci-dessus peut être utilisée avec soit "UNION", soit "UNION ALL".
Exemple 1 : Utilisation de l'opérateur « UNION »
Dans MySQL, l'opérateur UNION fusionne les résultats de plusieurs instructions SELECT tout en éliminant les lignes en double du résultat. La requête est donnée ci-dessous :
SELECT * FROM userdata
UNION
SELECT * FROM employeedata;Sortie
La sortie montre que les tables « userdata » et « employeedata » ont été jointes et que les lignes dupliquées ont été éliminées.
Exemple 2 : Utilisation de l'opérateur “UNION ALL”
Dans MySQL, l'opérateur “UNION ALL” fusionne les résultats de plusieurs instructions SELECT sans éliminer les lignes en double.
Exécutons la requête suivante pour une compréhension approfondie :
SELECT * FROM userdata
UNION ALL
SELECT * FROM employeedata;Sortie
On peut observer que le tableau résultant contient également les lignes dupliquées.
Exemple 3 : Utilisation de l'opérateur “UNION” avec la condition
Dans MySQL, l'opérateur UNION peut également être utilisé avec la clause WHERE pour filtrer le résultat de deux ou plusieurs instructions SELECT en fonction d'une condition particulière.
L'exemple est donné ci-dessous :
SELECT id, ContactName, City, Country FROM employee WHERE employee.id <= 5
UNION
SELECT id, ContactName, City, Country FROM Supplier WHERE Supplier.id <= 5;Sortie
La sortie montre que les tables « employé » et « fournisseur » ont été jointes selon les conditions spécifiées.
Conclusion
Pour joindre deux tables ou plus, les « UNION », « UNION ALL » et la virgule « , » peuvent être utilisées à la place de la clause « JOIN ». La virgule est utilisée en remplaçant le mot-clé « JOIN ». Les « UNION » et « UNION ALL » peuvent également être utilisés pour joindre plusieurs tables avec ou sans doublons. Dans cet article, un guide détaillé est présenté sur la façon de joindre les tables sans utiliser la clause JOIN.




