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.