Question

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

Était-ce utile?

La solution

UNION met les lignes de requêtes après l'autre, tandis que JOIN fait un produit cartésien et sous-ensembles, il - opérations complètement différentes. Trivial exemple de UNION:

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

exemple similairement trivial 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)

Autres conseils

UNION combine les résultats de deux ou plusieurs requêtes en un seul jeu de résultats qui inclut toutes les lignes qui appartiennent à toutes les requêtes de l'Union.

En utilisant SE JOINT, vous pouvez récupérer les données de deux ou plusieurs tables basées sur des relations logiques entre les tables. Jointures indiquer comment SQL doit utiliser des données d'une table pour sélectionner les lignes dans une autre table.

L'opération UNION est différente de l'utilisation de jointures 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

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

Les syndicats joints et peuvent être utilisés pour combiner les données d'une ou plusieurs tables. La différence réside dans la façon dont les données sont combinées.

En termes simples, jointures combiner des données dans de nouvelles colonnes . Si deux tables sont reliées entre elles, alors les données de la première table est indiquée dans un ensemble de colonne le long de la colonne de la seconde table dans la même rangée.

Les syndicats se combinent des données dans de nouvelles lignes. Si deux tables sont « filles fusionnées » ensemble, les données de la première table est dans un ensemble de lignes, et les données de la deuxième table dans une autre série . Les lignes sont dans le même résultat.

Voici une représentation visuelle d'une jointure. Le tableau A et les colonnes B sont combinés en un seul résultat.

 ici

Chaque ligne du résultat contient des colonnes à la fois le tableau A et B. Les lignes sont créées lorsque les colonnes provenant d'une des colonnes de correspondance de la table à partir de l'autre. Ce match est appelé la condition de jointure.

Cela rend vraiment rejoint grand pour la recherche des valeurs et de les inclure dans les résultats. Ceci est généralement le résultat de dénormalisation (normalisation inversion) et implique l'utilisation de la clé étrangère dans une table pour rechercher les valeurs de colonnes en utilisant la clé primaire dans une autre.

Maintenant, comparez la description ci-dessus avec celle d'un syndicat. Dans une union chaque ligne dans le résultat d'une table ou l'autre. Dans une union, les colonnes ne sont pas combinés pour créer des résultats, les lignes sont combinées.

 ici

Les deux syndicats joints et peuvent être utilisés pour combiner les données d'une ou plusieurs tables en un seul résultat. Ils ont tous deux vont à ce sujet est de différentes façons. Alors qu'une jointure est utilisée pour combiner des colonnes de différentes tables, le syndicat est utilisé pour combiner les lignes.

Source

Vous pouvez voir les mêmes explications schématiques pour les deux, mais ce sont tout à fait déroutant.

Pour UNION:

Entrez image description ici

Pour JOIN:

Entrez image description ici

JOIN:

Une jointure est utilisée pour afficher des colonnes avec le même ou différents noms de tables différentes. La sortie affichée aura toutes les colonnes affichées individuellement. C'est le les colonnes sont alignées les unes à côté des autres.

UNION:

L'opérateur de consigne de UNION est utilisé pour combiner des données à partir de deux tables qui ont des colonnes avec le même type de données. Lorsqu'une UNION est réalisée, les données des deux tables seront recueillies 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 jointure de 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

C'est une jointure.

UNION signifie que vous avez des tables ou avec le resultset même quantité et le type de colonnes et vous ajoutez ceci à tables / ResultSets 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

Ils sont des choses complètement différentes.

rejoindre vous permet de relier des données similaires dans différentes tables.

Un syndicat renvoie les résultats de deux requêtes différentes en un seul jeu d'enregistrements.

L'union fait deux requêtes ressemblent à un. Les relations sont de l'examen pour deux ou plusieurs tables dans une seule instruction de requête

Les joints et les syndicats peuvent être utilisés pour combiner les données d'une ou plusieurs tables. La différence réside dans la façon dont les données sont combinées.

En termes simples, les jointures de combiner les données dans de nouvelles colonnes. Si deux tables sont reliées entre elles, alors les données de la première table est indiquée dans un ensemble de colonne le long de la colonne de la seconde table dans la même rangée.

Les syndicats se combinent des données dans de nouvelles lignes. Si deux tables sont « filles fusionnées » ensemble, les données de la première table est dans un ensemble de lignes, et les données de la deuxième table dans un autre ensemble. Les lignes sont dans le même résultat.

Rappelez-vous que l'union va fusionner les résultats ( SQL Server pour être sûr) (fonction ou bug ?)

select 1 as id, 3 as value
union
select 1 as id, 3 as value

id, valeur

1,3

select * from (select 1 as id, 3 as value) t1 inner join (select 1 as id, 3 as value) t2 on t1.id = t2.id

id, la valeur, id, valeur

1,3,1,3

1. Le SQL se joint à la clause est utilisée pour combiner les enregistrements de deux ou plusieurs tables dans une base de données. Une jointure est un moyen pour combiner des champs de deux tables à l'aide des valeurs communes à chacun.

2. L'opérateur SQL UNION combine le résultat de deux ou plusieurs instructions SELECT. Chaque instruction SELECT dans l'Union doit avoir le même nombre de colonnes. Les colonnes doivent également avoir des types de données similaires. En outre, les colonnes de chaque instruction SELECT doivent être dans le même ordre.

par exemple: Le tableau 1 clients / tableau 2 commandes

jointure interne:

ID SELECT, NOM, MONTANT, DATE

DE CLIENTS

INNER JOIN ORDRES

CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

union:

ID SELECT, NOM, MONTANT, DATE

DE CLIENTS

LEFT JOIN ORDRES

CUSTOMERS.ID = ORDERS.CUSTOMER_ID

UNION

ID SELECT, NOM, MONTANT, DATE CLIENTS DE

RIGHT JOIN COMMANDES

CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

UNION Ussing

UNION est combine les résultats de deux ou plusieurs requêtes en un seul jeu de résultats qui inclut toutes les lignes qui appartiennent à toutes les requêtes du syndicat.

UNION Example:
SELECT 121 AS [Column1], 221 AS [Column2]
UNION
SELECT 321 AS [Column1], 422 AS [Column2]
Output:

Column1    Column2
-------------------
121          221
321          422

Ussing JOIN

SE JOINT, vous pouvez récupérer des données à partir de deux ou plusieurs tables en fonction des relations logiques entre les tables.

JOIN Example:
SELECT a.Column1, b.Column2 FROM TblA a INNER JOIN TblB b ON a.Id = b.id

Dans l'abstrait, ils sont semblables, en ce que deux tables ou des ensembles de résultats sont combinées, mais UNION est vraiment pour combiner des ensembles de résultats avec le même nombre de COLONNES avec les COLONNES TYPES DE DONNÉES AYANT SIMILAIRES. La structure est la même, que de nouvelles lignes sont ajoutées.

joint, vous pouvez combiner des ensembles de tables / résultat avec toute structure possible, y compris une jointure cartésienne où il n'y a pas de colonnes partagées / similaires.

L'opérateur UNION est juste pour combiner deux ou plusieurs instructions SELECT.

Alors JOIN est destiné à sélectionner des lignes dans chaque table, soit par la méthode interne, externe, à gauche ou à droite.

Reportez-vous à et ici . Il y a une meilleure explication des exemples.

Opération Union est le résultat combiné de la verticale Aggregate des lignes, Opération Union est le résultat combiné de la horizontal Aggregate des colonnes.

Je me plais à penser de la différence générale comme étant:

  • REJOINT joindre des tables
  • UNION (et tous) combine des requêtes.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top