Quelle est la différence entre JOIN et UNION?

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

UNION place les lignes des requêtes les unes après les autres, tandis que JOIN crée un produit cartésien et le sous-ensemble – des opérations complètement différentes. Exemple sortingvial d’ UNION :

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

exemple sortingvial 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) 

UNION combine les résultats de deux requêtes ou plus en un seul jeu de résultats qui inclut toutes les lignes appartenant à toutes les requêtes de l’union.

En utilisant JOIN , vous pouvez extraire des données de plusieurs tables en fonction des relations logiques 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 de JOIN qui combinent des colonnes provenant 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 

Exemple de jointure:

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

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

Vous pouvez voir les mêmes explications schématiques pour les deux, mais elles sont totalement déroutantes.

Pour UNION:

Entrez la description de l'image ici

Pour JOIN:

Entrez la description de l'image ici

JOINDRE:

Une jointure est utilisée pour afficher des colonnes avec des noms identiques ou différents provenant de différentes tables. La sortie affichée aura toutes les colonnes affichées individuellement. C’est-à-dire que les colonnes seront alignées les unes à côté des autres.

SYNDICAT:

L’opérateur UNION est utilisé pour combiner des données provenant de deux tables ayant des colonnes avec le même type de données. Lorsqu’une UNION est effectuée, les données des deux tables seront collecté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 

Maintenant, pour effectuer un type JOIN, la requête est affiché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 devez créer des tables ou des résultats avec le même nombre et le même type de colonnes et vous les ajoutez aux tables / ensembles de résultats. 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 

Les jointures et les unions peuvent être utilisées pour combiner des 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 combinent des données dans de nouvelles colonnes . Si deux tables sont jointes, les données de la première table sont affichées dans un ensemble de colonnes à côté de la colonne de la deuxième table dans la même ligne.

Les unions combinent des données dans de nouvelles lignes. Si deux tables sont «réunies» ensemble, les données de la première table sont dans un ensemble de lignes et les données de la seconde table dans un autre ensemble. Les lignes sont dans le même résultat.

Voici une représentation visuelle d’une jointure. Les colonnes des tableaux A et B sont combinées en un seul résultat.

entrer la description de l'image ici

Chaque ligne du résultat contient des colonnes des deux tables A et B. Des lignes sont créées lorsque des colonnes d’une table correspondent à des colonnes d’une autre. Cette correspondance s’appelle la condition de jointure.

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

Comparez maintenant la description ci-dessus avec celle d’une union. Dans une union, chaque ligne du résultat provient d’une table OU de l’autre. Dans une union, les colonnes ne sont pas combinées pour créer des résultats, les lignes sont combinées.

entrer la description de l'image ici

Les jointures et les unions peuvent être utilisées pour combiner des données d’une ou plusieurs tables en un seul résultat. Ils font tous les deux des démarches différentes. Alors qu’une jointure est utilisée pour combiner des colonnes provenant de tables différentes, l’union est utilisée pour combiner des lignes.

La source

Ce sont des choses complètement différentes.

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

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

Union fait deux requêtes qui ressemblent à une. Les jointures permettent d’examiner deux tables ou plus dans une seule instruction de requête

Les jointures et les unions peuvent être utilisées pour combiner des 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 combinent des données dans de nouvelles colonnes. Si deux tables sont jointes, les données de la première table sont affichées dans un ensemble de colonnes à côté de la colonne de la deuxième table dans la même ligne.

Les unions combinent des données dans de nouvelles lignes. Si deux tables sont «réunies» ensemble, les données de la première table sont dans un ensemble de lignes et les données de la seconde table dans un autre ensemble. Les lignes sont dans le même résultat.

Rappelez-vous que l’union fusionnera les résultats ( SQL Server pour être sûr) (fonctionnalité ou bogue?)

 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, valeur, id, valeur

1,3,1,3

1. La clause SQL Joins est utilisée pour combiner des enregistrements de plusieurs tables d’une firebase database. Un JOIN est un moyen de combiner des champs de deux tables en utilisant 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. De plus, les colonnes de chaque instruction SELECT doivent être dans le même ordre.

par exemple: table 1 clients / tableau 2 commandes

jointure interne:

SELECT ID, NOM, MONTANT, DATE

Des clients

INNER REJOIGNEZ LES COMMANDES

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

syndicat:

SELECT ID, NOM, MONTANT, DATE

Des clients

GAUCHE JOINDRE LES COMMANDES

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID

SYNDICAT

SELECT ID, NOM, MONTANT, DATE DES CLIENTS

DROIT REJOIGNEZ LES COMMANDES

ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

Utiliser UNION

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

 UNION Exemple:
 SELECT 121 AS [Colonne1], 221 AS [Colonne2]
 SYNDICAT
 SELECT 321 AS [Colonne1], 422 AS [Colonne2]
 Sortie:

 Colonne1 Colonne2
 -------------------
 121 221
 321 422

Utiliser les JOIN

JOIN, vous pouvez extraire des données de plusieurs tables en fonction de relations logiques entre les tables.

 Exemple de jointure:
 SELECT a.Column1, b.Column2 FROM TblA un INNER JOIN TblB b ON a.Id = b.id

Dans l’abstrait, ils sont similaires, en ce sens que deux tables ou ensembles de résultats sont combinés, mais UNION est en réalité pour combiner des ensembles de résultats avec le même nombre de colonnes avec les colonnes ayant des types de données similaires. La structure est la même, seules les nouvelles lignes sont ajoutées.

Dans les jointures, vous pouvez combiner des tables / jeux de résultats avec n’importe quelle structure possible, y compris une jointure cartésienne où il n’y a AUCUNE colonne partagée / similaire.

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

Alors que JOIN permet de sélectionner des lignes dans chaque table, soit par la méthode interne, externe, gauche ou droite.

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

Tout DBS moderne, comme MariaDB , implémente une commande UNION JOIN. Ceci est une commande SQL 3 , mais elle n’est ni connue ni utilisée. En savoir plus sur UNION JOIN .