Utilisation de l'opérateur Union MySQL

Utilisation de l'opérateur Union MySQL
De nombreux opérateurs existent dans MySQL pour récupérer des données à partir de plusieurs tables en fonction des exigences. L'un des opérateurs MySQL utiles est Union. Il est utilisé pour combiner les enregistrements de deux tables ou plus en écrivant une seule requête. Chaque instruction sélectionnée utilisée avec l'opérateur syndical doit contenir le même nombre de champs et le type de données de chaque champ sera également le même. Il récupère toutes les champs de champs communs et rares de toutes les tables mentionnées dans la requête en supprimant les entrées en double.

Syntaxe:

SELECT Field1, Field2,… Fieldn
Du tableau 1
[Où clause]
Union [distinct]
SELECT Field1, Field2,… Fieldn
De la table2
[Où Cluase];

Ici, la clause où et le modificateur distinct sont facultatifs. Si vous souhaitez exécuter une requête sélectionnée en fonction de n'importe quelle condition, exécutez la clause WHERE. Il est mentionné précédemment que les enregistrements en double sont supprimés automatiquement lors de l'exécution de la requête avec un opérateur syndical. Donc, utiliser le modificateur distinct est inutile.

Prérequis:

Vous devez créer la base de données et les tables nécessaires avec certains enregistrements pour connaître l'utilisation de l'opérateur syndical. Dans un premier temps, connectez-vous avec le serveur de base de données en utilisant mysql Client et exécutez l'instruction SQL suivante pour créer une base de données nommée 'entreprise'.

Créer une entreprise de base de données;

Sélectionnez la base de données actuelle en exécutant l'instruction suivante.

Utiliser l'entreprise;

Exécutez l'instruction SQL suivante pour créer un tableau nommé 'des produits' de cinq champs (id, nom, modèle_no, marque et prix). Ici, 'identifiant'est la clé principale.

Créer des produits de table (
ID INT (5) Clé primaire Auto_Increment non signé,
nom varchar (50) pas null,
Model_no varchar (50) pas null,
marque varchar (50) pas nul,
prix int (5)) moteur = innodb;

Exécutez l'instruction SQL suivante pour créer un tableau nommé 'Fournisseurs' de quatre champs (id, nom, adresse, pro_id). Ici, 'identifiant' est une clé principale et pro_id est une clé étrangère.

Créer des fournisseurs de table (
id int (6) clé primaire auto_increment non signée,
nom varchar (50) pas null,
Adresse Varchar (50) pas nul,
pro_id int (5) non signé pas nul,
Clé étrangère (pro_id) références Produits (ID) sur Delete Cascade)
Moteur = inNODB;

Exécutez l'instruction SQL suivante pour insérer quatre enregistrements dans les produits tableau.

Insérer dans les valeurs des produits
(Null, «Samsung 42» TV »,« TV-78453 »,« Samsung », 500),
(Null, «lg réfrigérateur», «FR-9023», «lg», 600)
(Null, «Sony 32» TV »,« TV-4523W »,« Sony », 300),
(Null, «Walton Washing Machine», «WM-78KL», «Walton», 255);

Exécutez l'instruction SQL suivante pour insérer six enregistrements dans les fournisseurs tableau.

Insérer dans les valeurs des fournisseurs
(Null, «Rahman Enterprise», «Dhanmondi», 1),
(Null, «ABC Electronics», «Mirpur», 2),
(Null, «Nabila Enterprise», «Mogbazar», 2),
(Null, «Naher Plaza», «Eskaton», 3),
(Null, «Walton Plaza», «Eskaton», 4)
(Null, «Walton Plaza», «Dhanmondi», 4);

*** Remarque: on suppose que le lecteur connaît les instructions SQL pour créer une base de données et une table ou insérer des données dans les tables. Ainsi, les captures d'écran des déclarations ci-dessus sont omises.

Exécuter l'instruction SQL suivante pour voir les enregistrements actuels de les produits tableau.

Sélectionner * dans les produits;

Exécuter l'instruction SQL suivante pour voir les enregistrements actuels de les fournisseurs tableau.

Sélectionner * chez les fournisseurs;

Ici, le nom du fournisseur 'Walton Plaza'Existe dans deux records. Lorsque ces deux tables seront combinées avec l'opérateur syndical, une valeur en double sera générée, mais elle sera supprimée automatiquement par défaut et vous n'aurez pas besoin d'utiliser un modificateur distinct.

Utilisation d'un simple opérateur syndical

La requête suivante récupérera les données de pro_id et nom champs de Fournisseurs table, et identifiant et nom champs de des produits tableau.

Sélectionnez Pro_ID comme «ID de produit», nom comme «Nom du produit ou nom du fournisseur»
Des fournisseurs
SYNDICAT
Sélectionnez l'ID comme «ID de produit», nom comme «Nom du produit ou nom du fournisseur»
Des produits;

Ici, des produits Le tableau contient 4 enregistrements et Fournisseurs Le tableau contient 6 enregistrements avec un enregistrement en double ('Walton Plaza'). La requête ci-dessus renvoie 9 enregistrements après avoir retiré l'entrée en double. L'image suivante montre la sortie de la requête où «Walton Plaza» apparaît une fois.

Utilisation de l'union avec une clause single où

L'exemple suivant montre l'utilisation de l'opérateur syndical entre deux requêtes sélectionnées où la deuxième requête contient une condition où rechercher ces enregistrements à partir de Fournisseurs table qui contient le mot, 'Walton' dans le nom champ.

Sélectionnez l'ID comme «ID de produit», nom comme «Nom du produit ou nom du fournisseur»
Des produits
SYNDICAT
Sélectionnez Pro_ID comme «ID de produit», nom comme «Nom du produit ou nom du fournisseur»
Des fournisseurs
Où les fournisseurs.nom comme «% walton%»;

Ici, la première requête sélectionnée renvoie 4 enregistrements à partir de des produits la table et la deuxième instruction SELECT renverra 2 enregistrements depuis Fournisseurs table parce que, le mot, 'Walton'apparaît deux fois dans le'nom' champ. Le total des 5 enregistrements sera retourné après avoir retiré le double de l'ensemble de résultats.

Utilisation de l'union avec multiple où la clause

L'exemple suivant montre l'utilisation d'un opérateur syndical entre deux requêtes sélectionnées où les deux requêtes contiennent où la condition. La première requête de sélection contient une condition où rechercher ces enregistrements à partir de ces enregistrements des produits quelles valeurs de prix sont inférieures à 600. La deuxième requête de sélection contient la même condition que l'exemple précédent.

Sélectionnez l'ID comme «ID de produit», nom comme «Nom du produit ou nom du fournisseur»
Des produits
Où le prix < 600
SYNDICAT
Sélectionnez Pro_ID comme «ID de produit», nom comme «Nom du produit ou nom du fournisseur»
Des fournisseurs
Où les fournisseurs.nom comme «% walton%»;

Ici, 4 enregistrements seront renvoyés comme sortie après avoir retiré les doublons.

Utilisation de Union All with Multiple Where Clause

Il est montré dans les exemples précédents que tous les enregistrements en double sont supprimés par les opérateurs syndicaux par défaut. Mais si vous souhaitez récupérer tous les enregistrements sans retirer des doublons, vous devez utiliser Union All Operator. L'utilisation de l'opérateur de l'Union est indiquée dans l'instruction SQL suivante.

Sélectionnez l'ID comme «ID de produit», nom comme «Nom du produit ou nom du fournisseur»
Des produits
Où le prix < 600
Union All
Sélectionnez Pro_ID comme «ID de produit», nom comme «Nom du produit ou nom du fournisseur»
Des fournisseurs
Où les fournisseurs.nom comme «% walton%»;

L'image suivante montre que l'ensemble de résultats renvoyé contient les enregistrements en double après avoir exécuté l'instruction ci-dessus. Ici, 'Walton Plaza ' apparaît deux fois.

Conclusion:

Les utilisations des opérateurs syndicales dans l'instruction SQL sont expliquées dans ce tutoriel en utilisant des exemples simples. J'espère que les lecteurs pourront utiliser cet opérateur correctement après avoir lu cet article.