330 votes

Quelle est la différence entre JOIN et UNION ?

Quelle est la différence entre JOIN y UNION ? Puis-je avoir un exemple ?

0 votes

Toute DBS moderne, comme MariaDB met en œuvre une commande UNION JOIN. Il s'agit d'une commande SQL 3 mais elle n'est pas très connue ni utilisée. Pour en savoir plus, consultez UNION JOIN .

0 votes

@Auston UNION JOIN a été proposé mais n'a jamais été ajouté à SQL.

411voto

Alex Martelli Points 330805

UNION place les lignes des requêtes les unes à la suite des autres, tandis que JOIN réalise un produit cartésien et le sous-ensemble - des opérations complètement différentes. Exemple trivial de UNION :

mysql> SELECT 23 AS bah
    -> UNION
    -> SELECT 45 AS bah;
+-----+
| bah |
+-----+
|  23 | 
|  45 | 
+-----+
2 rows in set (0.00 sec)

exemple trivial similaire de JOIN :

mysql> SELECT * FROM 
    -> (SELECT 23 AS bah) AS foo 
    -> JOIN 
    -> (SELECT 45 AS bah) AS bar
    -> ON (33=33);
+-----+-----+
| foo | bar |
+-----+-----+
|  23 |  45 | 
+-----+-----+
1 row in set (0.01 sec)

6 votes

Pouvez-vous me dire ce qu'est un UNION-JOIN et comment puis-je le faire en SQL standard ? La base de données Maria a une commande union join mais d'autres bases de données ne le font pas. Merci de votre compréhension.

0 votes

Laissez-moi juste... upvotez ce magnifique chef-d'œuvre... voilà. La façon la plus simple de les expliquer.

75voto

Kirtan Points 11022

UNION combine les résultats de deux ou plusieurs requêtes en un seul ensemble de résultats qui comprend toutes les lignes appartenant à toutes les requêtes de l'union.

En utilisant JOINs Vous pouvez extraire des données de deux tables ou plus sur la base des relations logiques existant entre les tables. Les jointures indiquent comment SQL doit utiliser les données d'une table pour sélectionner les lignes d'une autre table.

L'opération UNION est différente de l'utilisation des JOIN qui combinent les colonnes de deux tables.

UNION Exemple :

SELECT 1 AS [Column1], 2 AS [Column2]
UNION
SELECT 3 AS [Column1], 4 AS [Column2]

Sortie :

Column1    Column2
-------------------
1          2
3          4

JOIN Exemple :

SELECT a.Column1, b.Column2 FROM TableA a INNER JOIN TableB b ON a.Id = b.AFKId

Cela produira toutes les lignes des deux tables pour lesquelles la condition a.Id = b.AFKId est vrai.

0 votes

La jointure peut extraire des données d'une* ou de plusieurs tables. Pas nécessairement deux

52voto

JOINDRE :

Une jointure est utilisée pour afficher les colonnes ayant la même valeur ou la même valeur. ou différentes dans différentes tables. La sortie affichée comportera toutes les colonnes affichées individuellement. En d'autres termes, la colonne seront alignées les unes à côté des autres.

L'UNION :

L'opérateur UNION set est utilisé pour combiner des données provenant de deux tables dont les colonnes ont le même type de données. Lorsqu'une UNION est effectuée, les données des deux tables sont rassemblées dans une seule colonne ayant le même type de données. dans une seule colonne ayant le même type de données.

Par exemple :

Voir les deux tableaux ci-dessous :

Table t1
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2

Table t2
manufacturer_id manufacturer
1 ABC Gmbh
2 DEF Co KG

Pour effectuer un type de JOIN, la requête est présentée ci-dessous.

SELECT articleno, article, manufacturer
FROM t1 JOIN t2 ON (t1.manufacturer_id =
t2.manufacturer_id);

articelno article manufacturer
1 hammer ABC GmbH
2 screwdriver DEF Co KG

Il s'agit d'une adhésion.

UNION signifie que vous devez créer des tables ou des ensembles de résultats avec l'élément le même nombre et le même type de colonnes et vous les ajoutez aux tableaux/résultats ensemble. Regardez cet exemple :

Table year2006
Articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2

Table year2007
Articleno article price manufacturer_id
1 hammer 6 $ 3
2 screwdriver 7 $ 4

SELECT articleno, article, price, manufactruer_id
FROM year2006
UNION
SELECT articleno, article, price, manufacturer_id
FROM year2007

articleno article price manufacturer_id
1 hammer 3 $ 1
2 screwdriver 5 $ 2
1 hammer 6 $ 3
2 screwdriver 7 $ 4

27voto

adeshsuryan Points 51

Il s'agit de deux choses complètement différentes.

A rejoindre permet de mettre en relation des données similaires dans différents tableaux.

Une union renvoie les résultats de deux requêtes différentes sous la forme d'un seul jeu d'enregistrements.

16voto

James L Points 6068

L'union permet de faire passer deux requêtes pour une seule. Les jointures permettent d'examiner deux tables ou plus en une seule requête.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X