Tout DBS moderne, comme MariaDB , implémente une commande UNION JOIN. Il s'agit d'une commande SQL & nbsp; 3 , mais elle n'est pas bien connue ou utilisée. Apprenez-en plus sur UNION JOIN .
Auston
Réponses:
301
UNIONplace les lignes des requêtes les unes après les autres, tout en JOINcréant un produit cartésien et en le sous-ensemble - des opérations complètement différentes. Exemple trivial de UNION:
Pouvez-vous s'il vous plaît me dire ce qu'est un UNION-JOINet comment puis-je l'accomplir en SQL standard? Maria DB a une commande union join, mais pas d'autres bases de données. Merci.
Erran Morad
73
Les jointures et les unions peuvent être utilisées 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 combinent les 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 deuxième colonne de la même ligne.
Les syndicats combinent les données dans de nouvelles lignes. Si deux tables sont «réunies», les données de la première table se trouvent 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.
Voici une représentation visuelle d'une jointure. Les colonnes des tableaux A et B sont combinées en un seul résultat.
Chaque ligne du résultat contient des colonnes des DEUX tableaux A et B. Les lignes sont créées lorsque les colonnes d'un tableau correspondent aux colonnes d'un autre. Cette correspondance est appelée condition de jointure.
Cela rend les jointures vraiment super pour rechercher des valeurs et les inclure dans les résultats. Ceci est généralement le résultat de la 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 représentation ci-dessus avec celle d'un syndicat. 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.
Les jointures et les unions peuvent être utilisées pour combiner les données d'une ou plusieurs tables en un seul résultat. Ils procèdent tous les deux de différentes manières. Alors qu'une jointure est utilisée pour combiner des colonnes de différentes tables, l'union est utilisée pour combiner des lignes.
Ceci est un exemple visuel impressionnant. J'étais presque sûr d'avoir compris après les autres réponses, mais cela a complètement clarifié les choses.
seadoggie01
Pour l'exemple de jointure, techniquement parlant, le résultat ne devrait-il pas y avoir 10 colonnes?
Bharath Ram
60
SYNDICAT combine les résultats de deux requêtes ou plus en un seul jeu de résultats qui inclut toutes les lignes qui appartiennent à toutes les requêtes de l'union.
En utilisant JOINs , vous pouvez récupérer des données de deux tables ou plus 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 de deux tables.
Ces images impliquent que FULL OUTER JOINc'est la même chose que UNION, qui ont des différences
icc97
1
Cette réponse souligne que ces images prêtent à confusion (de quelle OMI elles sont), mais ne continue pas d'expliquer pourquoi ni de fournir des éclaircissements par rapport à la question d'origine.
Josh D.
1
Chaque image avec des diagrammes explique parfaitement la situation. Il n'y a pas d'image unique qui puisse fusionner tous les diagrammes. Ce sera plus déroutant.
Java Main
41
JOINDRE:
Une jointure est utilisée pour afficher des colonnes portant des noms identiques ou différents provenant de tables différentes. La sortie affichée aura toutes les colonnes affichées individuellement. Autrement dit, les colonnes seront alignées les unes à côté des autres.
SYNDICAT:
L'opérateur UNION set est utilisé pour combiner les données de deux tables qui ont 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.
Maintenant, pour effectuer un type 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
C'est une jointure.
UNION signifie que vous devez créer des tableaux ou des ensembles de résultats avec la même quantité et le même type de colonnes et que vous les ajoutez ensemble aux tableaux / ensembles de résultats. Regardez cet exemple:
Les jointures et les unions peuvent être utilisées 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 combinent les 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 deuxième colonne de la même ligne.
Les syndicats combinent les données dans de nouvelles lignes. Si deux tables sont «réunies», les données de la première table se trouvent 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.
1. La clause SQL Joins est utilisée pour combiner des enregistrements de deux tables ou plus dans une base de données. 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. En outre, les colonnes de chaque instruction SELECT doivent être dans le même ordre.
par exemple: table 1 clients / table 2 commandes
jointure interne:
CHOISIR ID, NOM, MONTANT, DATE
DES CLIENTS
ORDRES DE JOINTURE INTÉRIEURE
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
syndicat:
CHOISIR ID, NOM, MONTANT, DATE
DES CLIENTS
ORDRES DE JOINTURE GAUCHE
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
SYNDICAT
SÉLECTIONNEZ L'ID, LE NOM, LE MONTANT ET LA DATE DES CLIENTS
UNION combine les résultats de deux requêtes ou plus en un seul jeu de résultats qui inclut toutes les lignes qui appartiennent à toutes les requêtes de l'union.
UNION Exemple:
SELECT 121 AS [Colonne1], 221 AS [Colonne2]
SYNDICAT
SELECT 321 AS [Colonne1], 422 AS [Colonne2]
Dans l'abstrait, ils sont similaires, en ce sens que deux tableaux ou ensembles de résultats sont combinés, mais UNION est vraiment 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 PAS de colonnes partagées / similaires.
L'opération d'union est le résultat combiné de l' agrégat vertical des lignes, l'opération d'union est le résultat combiné de l' agrégat horizontal des colonnes.
Cela soulève la question - l'adhésion est mentionnée en termes de «rejoindre» et l'union est mentionnée en termes de «combine» inexpliquée. Quoi qu'il en soit, que pensez-vous que vous ajouteriez au-delà d'autres réponses très votées de 10 ans qui rendent cela "utile"? (Rhétorique.) Voir le texte de la souris sur la flèche de vote.
Réponses:
UNION
place les lignes des requêtes les unes après les autres, tout enJOIN
créant un produit cartésien et en le sous-ensemble - des opérations complètement différentes. Exemple trivial deUNION
:exemple trivial similaire de
JOIN
:la source
UNION-JOIN
et comment puis-je l'accomplir en SQL standard? Maria DB a une commandeunion join
, mais pas d'autres bases de données. Merci.Les jointures et les unions peuvent être utilisées 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 combinent les 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 deuxième colonne de la même ligne.
Les syndicats combinent les données dans de nouvelles lignes. Si deux tables sont «réunies», les données de la première table se trouvent 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.
Voici une représentation visuelle d'une jointure. Les colonnes des tableaux A et B sont combinées en un seul résultat.
Chaque ligne du résultat contient des colonnes des DEUX tableaux A et B. Les lignes sont créées lorsque les colonnes d'un tableau correspondent aux colonnes d'un autre. Cette correspondance est appelée condition de jointure.
Cela rend les jointures vraiment super pour rechercher des valeurs et les inclure dans les résultats. Ceci est généralement le résultat de la 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 représentation ci-dessus avec celle d'un syndicat. 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.
Les jointures et les unions peuvent être utilisées pour combiner les données d'une ou plusieurs tables en un seul résultat. Ils procèdent tous les deux de différentes manières. Alors qu'une jointure est utilisée pour combiner des colonnes de différentes tables, l'union est utilisée pour combiner des lignes.
La source
la source
SYNDICAT combine les résultats de deux requêtes ou plus en un seul jeu de résultats qui inclut toutes les lignes qui appartiennent à toutes les requêtes de l'union.
En utilisant JOINs , vous pouvez récupérer des données de deux tables ou plus 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 de deux tables.
UNION Exemple:
Production:
JOIN Exemple:
Cela générera toutes les lignes des deux tables pour lesquelles la condition
a.Id = b.AFKId
est vraie.la source
Vous pouvez voir les mêmes explications schématiques pour les deux, mais elles sont totalement déroutantes.
Pour UNION:
Pour JOIN:
la source
FULL OUTER JOIN
c'est la même chose queUNION
, qui ont des différencesJOINDRE:
Une jointure est utilisée pour afficher des colonnes portant des noms identiques ou différents provenant de tables différentes. La sortie affichée aura toutes les colonnes affichées individuellement. Autrement dit, les colonnes seront alignées les unes à côté des autres.
SYNDICAT:
L'opérateur UNION set est utilisé pour combiner les données de deux tables qui ont 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:
Maintenant, pour effectuer un type JOIN, la requête est présentée ci-dessous.
C'est une jointure.
UNION signifie que vous devez créer des tableaux ou des ensembles de résultats avec la même quantité et le même type de colonnes et que vous les ajoutez ensemble aux tableaux / ensembles de résultats. Regardez cet exemple:
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 seul jeu d'enregistrements.
la source
Union fait ressembler deux requêtes à une seule. Les jointures servent à examiner deux tables ou plus dans une seule instruction de requête
la source
Les jointures et les unions peuvent être utilisées 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 combinent les 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 deuxième colonne de la même ligne.
Les syndicats combinent les données dans de nouvelles lignes. Si deux tables sont «réunies», les données de la première table se trouvent 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.
la source
N'oubliez pas que l'union fusionnera les résultats ( SQL Server pour être sûr) (fonctionnalité ou bogue?)
id, valeur
1,3
id, valeur, id, valeur
1,3,1,3
la source
UNION
vsUNION ALL
stackoverflow.com/questions/49925/…1. La clause SQL Joins est utilisée pour combiner des enregistrements de deux tables ou plus dans une base de données. 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. En outre, les colonnes de chaque instruction SELECT doivent être dans le même ordre.
par exemple: table 1 clients / table 2 commandes
jointure interne:
CHOISIR ID, NOM, MONTANT, DATE
DES CLIENTS
ORDRES DE JOINTURE INTÉRIEURE
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
syndicat:
CHOISIR ID, NOM, MONTANT, DATE
DES CLIENTS
ORDRES DE JOINTURE GAUCHE
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID
SYNDICAT
SÉLECTIONNEZ L'ID, LE NOM, LE MONTANT ET LA DATE DES CLIENTS
ORDRES DE JOINTURE DROITE
ON CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
la source
Utiliser UNION
UNION combine les résultats de deux requêtes ou plus en un seul jeu de résultats qui inclut toutes les lignes qui appartiennent à toutes les requêtes de l'union.
Utilisation de JOIN
JOINs, vous pouvez récupérer des données de deux tables ou plus en fonction des relations logiques entre les tables.
la source
Dans l'abstrait, ils sont similaires, en ce sens que deux tableaux ou ensembles de résultats sont combinés, mais UNION est vraiment 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 PAS de colonnes partagées / similaires.
la source
L'opérateur UNION sert uniquement à combiner deux ou plusieurs instructions SELECT.
Alors que JOIN sert à 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.
la source
L'opération d'union est le résultat combiné de l' agrégat vertical des lignes, l'opération d'union est le résultat combiné de l' agrégat horizontal des colonnes.
la source
J'aime penser la différence générale comme étant:
la source