Introduction aux jointures dans MySQL

MySQL Joins joue un rôle important lorsque nous devons joindre deux tables ensemble sur la base d'une ou plusieurs valeurs communes partagées par deux tables.

Exemple : considérons que nous avons deux tables, l'une est la table des employés composée de employee_id, phn_no, salaire et département. Une autre table est la table d'adresses qui se compose de employee_id et address. Si nous devons trouver l'employé_id, le service et l'adresse, nous devons alors joindre les deux tables partageant le champ commun en tant qu'employé_id.

Requête :

SELECT e1.employee_id, e1.department, a1.address
FROM employee e1
INNER JOIN address a1
ON e1.employee_id = a1.employee_id;

6 principaux types de jointures dans MySQL

Il existe différents types de jointures dans MySQL. Les jointures mentionnées ci-dessous se rencontrent dans l'utilisation quotidienne et sont les plus utiles lors de l'exécution de nombreuses requêtes dans des scénarios de cas réels.

  1. Jointure interne
  2. Joint gauche
  3. Jointure droite
  4. Jointure externe complète
  5. Auto-adhésion
  6. Jointure croisée

1. Jointure intérieure

La jointure interne renvoie la valeur qui correspond dans les deux tables.

Cette partie vient dans la sortie comme indiqué dans l'image ci-dessus.

Exemple 1:

Emp_id département Un salaire
1001 IL 1000
1002 CSR 800
1003 IL 2000

Ceci est la table des employés.

Emp_id Adresse
1002 Delhi
1003 Bangalore
1005 Bbsr

Voici le tableau d'adresses de ces employés. La clé primaire de l'employé de la table parent emp_id est utilisée comme clé étrangère dans la table d'adresses qui est la table enfant. Nous trouverons l'emp_id, le département et l'adresse d'un employé à l'aide de la jointure interne. Parce que les états de jointure interne Il récupère les enregistrements qui sont présents / communs dans les deux tables.

Requete:

SELECT emp.emp_id, emp.department, ads.address
FROM employee AS emp
INNER JOIN address AS ads
ON emp.emp_id = ads.emp_id;

Nous donnons un alias au nom de la table juste pour éviter de prendre plus de temps. Dans la requête ci-dessus, nous utilisons l'alias «emp» pour la table des employés et «ads» pour la table des adresses.

Production:

Emp_id département Adresse
1002 CSR Delhi
1003 IL Bangalore

Comme dans l'exemple ci-dessus, emp_id 1002 et 1003 étaient communs aux deux tables, la commande de jointure interne récupère la sortie pour ces employés uniquement.

Exemple # 2:

Ici, nous avons 2 tables, table1 & table2. Les deux tableaux sont constitués d'un attribut chacun en tant que colonne A et colonne B respectivement.

Tableau 1

Colonne A
1
1
2
3
4

Tableau 2

Colonne B
1
2
2
3
3
5

Requete:

If we apply inner join here,
SELECT * FROM Table1
INNER JOIN table2
ON columnA = columnB;

Production:

Colonne A Colonne B
1 1
1 Nul
2 2
Nul 2
3 3
Nul 3

2. Joint gauche

Cette jointure renvoie tous les enregistrements de la table de gauche et les enregistrements correspondants de la table de droite.

Comme le montre le diagramme ci-dessus, il comprend tous les enregistrements du tableau A et les enregistrements courants de A et B.

Exemple 1:

N ° de client Nom Ville
1 Harish Cuttack
2 David Bangalore
3 Mahesh Bhubaneswar
4 Sam Kolkata

Tableau des clients:

Numéro de commande Montant N ° de client
19868 7575, 00 4
19976 434654, 00 2
99680 7457, 00 3

Tableau de commande:

Nous découvrirons customer_id, name et order_id associés en utilisant la jointure gauche.

Requete:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;

Production:

N ° de client NomNuméro de commande
1 Harish nul
2 David 19976
3 Mahesh 99680
4 Sam 19868

Comme nous en avons discuté, cette jointure gauche a récupéré tous les identifiants client de la table client et les communs entre les deux tables. Pour le customer_id '1', il apparaîtra comme 'null' car le '1' customer_id n'est pas présent dans la table de commande.

Exemple # 2:

Ici, nous avons 2 tables, table1 & table2. Les deux tableaux sont constitués d'un attribut chacun en tant que colonne A et colonne B respectivement.

Tableau 1

Colonne A
1
1
2
2
3

Tableau 2

Colonne B
1
2
2
4
4
5
5

Requete:

If we apply left join on above 2 tables,
SELECT * FROM table1
LEFT JOIN table2
ON columnA = columnB;

Colonne A Colonne B
1 1
1 Nul
2 2
2 2
3 Nul

3. Jointure droite

Cette jointure renvoie tous les enregistrements de la table de droite et ceux correspondants de la table de gauche.

Le diagramme ci-dessus montre qu'il récupère tous les enregistrements de la table B et celui commun qui est présent dans les deux tables.

Exemple:

N ° de client Nom Ville
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 RAM Mumbai

Tableau des clients:

Numéro de commande Montant N ° de client
19868 7575, 00 4
19976 434654, 00 2
99680 7457, 00 3

Tableau de commande:

Nous découvrirons customer_id, name et order_id qui lui sont associés en utilisant la bonne jointure.

Requete:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;

Production:

N ° de client Nom Numéro de commande
2 nul 19976
3 Mahesh 99680
4 Sam 19868

Comme nous avons effectué la jointure ici, la requête a récupéré tous les identifiants client de la table de commande et les enregistrements communs qui se trouvent dans les deux tables.

4. Jointure externe complète

La jointure externe complète renvoie tous les enregistrements des deux tables s'il y a un champ commun partagé.

Exemple:

N ° de client Nom Ville
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 RAM Mumbai

Tableau des clients:

Numéro de commande Montant N ° de client
19868 7575, 00 4
19976 434654, 00 2
99680 7457, 00 3

Tableau de commande:

Nous découvrirons customer_id, name et order_id qui lui sont associés à l'aide d'une jointure externe complète.

Requete:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
FULL OUTER JOIN order ord
ON cust.customer_id = ord.customer_id;

Production:

N ° de client Nom Numéro de commande
2 nul 19976
3 Mahesh 99680
4 Sam 19868
5 RAM nul

Cette jointure externe complète a récupéré tous les identifiants client de la table client ainsi que de la table de commande.

5. Auto-adhésion

L'auto-jointure est une jointure régulière et ici la table se joint à elle-même uniquement.

Emp_id Nom Pas de téléphone Ville Pays
1001 R. Madhvan 9687687698 Bangalore Inde
1002 Gobu Sharma 9856453423 Pune Inde
1003 Debasish Das 8765456787 Mumbai Inde
1004 Amit Rout 4567788635 Pune Inde
1005 Sambit Kar 8789887873 Hyderabad Inde

Voici la table des employés composée de plusieurs champs. Nous découvrirons les employés vivant dans la même ville.

Requête :

SELECT e1.name AS Employee_name1, e2.name AS employee_name2, e1.City
FROM employee e1, employee e2
WHERE e1.name e2.name
AND e1.city = e2.city;

Sortie :

Employee_name1 Employee_name2 e1.city
Gobu Sharma Amit Rout Pune
Amit Rout Gobu Sharma Pune

6. Jointure croisée

Cette jointure produit un résultat où le nombre de lignes de la première table est multiplié par les lignes de la seconde table. Ce type de résultat est appelé le produit cartésien. Si nous utilisons la clause WHERE avec cette jointure, cela fonctionnera comme une jointure interne.

Exemple:

Prod_id Nom_produit Prod_unit Company_id
1 Mélange Chex Pcs 12
2 Cheez-it Pcs 15
3 Biscuit pièces 16

Tableau des produits :

Company_id Nom de la compagnie Company_city
15 Gourmets Delhi
16 Jack n Jill Cuttack
17 Naturel Bangalore

Tableau d' entreprise :

Nous appliquerons une jointure croisée à ces tables.

Requête :

SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;

Sortie :

p.product_name p.prod_unit c.company_name
Mélange Chex Pcs Gourmets
Cheez-it Pcs Gourmets
Biscuit Pcs Gourmets
Mélange Chex Pcs Jack n Jill
Cheez-it Pcs Jack n Jill
Biscuit Pcs Jack n Jill
Mélange Chex Pcs Naturel
Cheez-it Pcs Naturel
Biscuit Pcs Naturel

Conclusion

L'importance de ces jointures est très importante tout en travaillant dans des scénarios en temps réel ainsi que dans certaines autres technologies. Dans les visualisations comme Tableau et Power BI, les jointures jouent un rôle essentiel. La pratique structurée de ceci est essentielle pour intégrer ces nouvelles techniques et compétences.

Article recommandé

Ceci est un guide des jointures dans MySQL. Nous discutons ici des 6 principaux types de jointures dans MySQL comme Inner, Left, Right, Full, Self, Cross et ses exemples ainsi que Query et Output. vous pouvez également consulter nos articles suggérés pour en savoir plus -

  1. Top 10 des commandes MySQL
  2. Introduction aux opérateurs MySQL
  3. MySQL vs SQLite | Comparaison des 14 meilleurs
  4. Top 23 des fonctions MySQL String
  5. Expliquer la commande d'insertion dans MySQL avec des exemples
  6. 6 principales différences entre la clé primaire et la clé étrangère