Maison >base de données >tutoriel mysql >JOIN vs UNION : quelle est la différence dans la manipulation des données SQL ?
SQL JOIN et UNION : une comparaison détaillée
SQL fournit deux opérateurs puissants, JOIN
et UNION
, pour manipuler les données sur plusieurs tables. Cet article clarifie leurs fonctionnalités distinctes avec des exemples illustratifs.
JOIN et UNION : en quoi ils diffèrent
JOIN
fusionne les lignes de différentes tables en fonction d'une colonne ou d'une condition partagée, générant un ensemble de résultats combiné contenant les champs des deux tables. À l'inverse, UNION
empile verticalement les résultats de plusieurs SELECT
instructions, produisant un seul jeu de résultats englobant toutes les lignes de chaque requête.
Comprendre l'opérateur JOIN
JOIN
(y compris des variantes comme INNER JOIN
et LEFT JOIN
) crée initialement un produit cartésien des tables impliquées. Par la suite, il filtre ce produit en fonction des conditions de jointure définies. Cela permet une analyse intégrée des données provenant de diverses sources.
Exemple de REJOINDRE
<code class="language-sql">SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id;</code>
Ce INNER JOIN
renvoie uniquement les lignes où la colonne id
correspond à la fois dans table1
et table2
.
Comprendre l'opérateur UNION
UNION
(y compris UNION ALL
) combine les résultats de plusieurs instructions SELECT
en un seul ensemble de résultats unifié. Contrairement à JOIN
, UNION
ne filtre ni ne compare les lignes ; cela les concatène simplement.
Exemple d'UNION
<code class="language-sql">SELECT * FROM table1 UNION SELECT * FROM table2;</code>
Cette instruction UNION
renvoie toutes les lignes de table1
et table2
, éliminant les lignes en double. UNION ALL
conserverait 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!