Joindre 3 tables dans MySQL

Preet Sanghavi 28 mars 2022
Joindre 3 tables dans MySQL

Dans ce tutoriel, nous allons apprendre à joindre trois tables dans MySQL.

Les entreprises et les organisations peuvent avoir à visualiser trois tableaux simultanément en fonction d’une colonne correspondante commune aux trois tableaux. Cette opération est autorisée dans MySQL à l’aide de jointures.

Nous pouvons récupérer des colonnes selon nos besoins à partir de différentes tables et joindre les tables en fonction d’une colonne particulière commune à tous. Par exemple, nous avons trois tables nommées table_1, table_2 et table_3.

La première table a le nom, la seconde a le nom de famille et la dernière a l’adresse. Chacun a un identifiant primaire pour fusionner ou visualiser ces tables comme une seule en utilisant l’identifiant primaire commun MySQL.

Comprenons comment cette méthode fonctionne. Mais avant de commencer, nous devons créer trois ensembles de données factices en créant une table, student_details, ainsi que quelques lignes.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

Pour afficher les entrées dans les données, nous utilisons le code suivant.

SELECT * FROM student_details;

Production :

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

Ensuite, nous avons besoin d’une autre table nommée student_marks contenant les notes de chaque étudiant correspondant au stu_id. Nous pouvons créer une telle table en utilisant la requête suivante.

-- create the table student_details
CREATE TABLE student_marks(
  stu_id int,
  stu_marks int
);
-- insert rows to the table student_details
INSERT INTO student_marks(stu_id,stu_marks) 
 VALUES(1,10),
 (2,20),
 (3,30),
 (4,7),
 (5,9),
 (6,35),
 (7,15);

Nous pouvons visualiser ce tableau à l’aide de la requête suivante.

SELECT * from student_marks;

Production :

stu_id  stu_marks
1		10
2		20
3		30
4		7
5		9
6		35
7		15

Enfin, créons une troisième table nommée student_email. Cette table posséderait les colonnes stu_id et stu_email. La colonne stu_id serait commune aux trois tables, tandis que la colonne stu_email représenterait l’adresse électronique de l’étudiant considéré.

Nous pouvons créer la troisième table à l’aide de la requête suivante.

-- CREATE TABLE student_email
CREATE TABLE student_email(
  stu_id int,
  stu_email varchar(255) DEFAULT NULL
);

-- insert rows to the table student_email
INSERT INTO student_email(stu_id,stu_email) 
 VALUES(1,"abc@d.in"),
 (2,"SEAabc@d.in"),
 (3,"DEabc@d.in"),
 (4,"KARTabc@d.in"),
 (5,"MARIOabc@d.in"),
 (6,"SPETERabc@d.in"),
 (7,"DAVIDabc@d.in");

Nous pouvons visualiser la table student_email créée ci-dessus avec la requête suivante.

SELECT * from student_email;

Production :

stu_id	stu_email
1		abc@d.in
2		SEAabc@d.in
3		DEabc@d.in
4		KARTabc@d.in
5		MARIOabc@d.in
6		SPETERabc@d.in
7		DAVIDabc@d.in

Essayons d’obtenir trois valeurs, notamment le prénom, les notes et l’adresse e-mail de l’élève, à partir des trois tables créées ci-dessus à l’aide de la colonne commune stu_id.

Joindre 3 tables dans MySQL

Pour fusionner nos trois tables, nous pouvons utiliser la colonne commune et récupérer différentes colonnes à partir de tables distinctes à l’aide de la requête suivante.

select a.stu_firstName as "Name", b.stu_email as "Email", c.stu_marks as "Marks"
from student_details a, student_email b, student_marks c
where a.stu_id = b.stu_id and b.stu_id = c.stu_id 

Comme on le voit dans la requête ci-dessus, nous joignons trois tables basées sur l’identité commune des étudiants. La sortie du code ci-dessus est la suivante.

Name	Email			Marks
Preet	abc@d.in		10
Rich	SEAabc@d.in		20
Veron	DEabc@d.in		30
Geo		KARTabc@d.in	7
Hash	MARIOabc@d.in	9
Sachin	SPETERabc@d.in	35
David	DAVIDabc@d.in	15

Note : Dans le bloc de sortie, nous avons les alias Name, Email et Marks avec le mot-clé AS dans MySQL pour augmenter la lisibilité du programme.

Par conséquent, à l’aide des clauses WHERE et ON, nous pouvons joindre efficacement trois tables différentes et visualiser leurs colonnes comme une seule basée sur une condition commune dans MySQL.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Article connexe - MySQL Join