Verbinden 3 Tabellen in MySQL
In diesem Tutorial lernen wir, wie man drei Tabellen in MySQL verbindet.
Unternehmen und Organisationen müssen möglicherweise drei Tabellen gleichzeitig visualisieren, basierend auf einer bestimmten übereinstimmenden Spalte, die allen drei Tabellen gemeinsam ist. Diese Operation ist in MySQL mit Hilfe von Joins erlaubt.
Wir können Spalten gemäß unseren Anforderungen aus verschiedenen Tabellen abrufen und die Tabellen basierend auf einer bestimmten Spalte verbinden, die allen gemeinsam ist. Zum Beispiel haben wir drei Tabellen mit den Namen Table_1
, Table_2
und Table_3
.
Die erste Tabelle enthält den Namen, die zweite den Nachnamen und die letzte die Adresse. Jede hat eine primäre ID, um diese Tabellen zusammenzuführen oder als eine zu visualisieren, wobei die gemeinsame primäre ID MySQL verwendet wird.
Lassen Sie uns verstehen, wie diese Methode funktioniert. Aber bevor wir beginnen, müssen wir drei Dummy-Datensätze erstellen, indem wir eine Tabelle student_details
zusammen mit einigen Zeilen erstellen.
sqlCopy-- 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");
Um die Einträge in den Daten anzuzeigen, verwenden wir den folgenden Code.
sqlCopySELECT * FROM student_details;
Ausgabe:
textCopystu_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
Als nächstes brauchen wir eine weitere Tabelle mit dem Namen student_marks
, die die Noten jedes Studenten enthält, die der stu_id
entsprechen. Wir können eine solche Tabelle mit der folgenden Abfrage erstellen.
sqlCopy-- 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);
Wir können diese Tabelle mit der folgenden Abfrage visualisieren.
sqlCopySELECT * from student_marks;
Ausgabe:
textCopystu_id stu_marks
1 10
2 20
3 30
4 7
5 9
6 35
7 15
Als letztes erstellen wir eine dritte Tabelle mit dem Namen student_email
. Diese Tabelle würde die Spalten stu_id
und stu_email
besitzen. Die Spalte stu_id
wäre allen drei Tabellen gemeinsam, während die Spalte stu_email
die E-Mail-Adresse des betrachteten Studenten darstellen würde.
Die dritte Tabelle können wir mit Hilfe der folgenden Abfrage erstellen.
sqlCopy-- 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");
Wir können die oben erstellte Tabelle student_email
mit der folgenden Abfrage visualisieren.
sqlCopySELECT * from student_email;
Ausgabe:
textCopystu_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
Versuchen wir, aus den drei oben erstellten Tabellen mit Hilfe der gemeinsamen Spalte stu_id
drei Werte zu bekommen, insbesondere den studentischen Vornamen, die Noten und die E-Mail-Adresse.
Verbinden 3 Tabellen in MySQL
Um unsere drei Tabellen zusammenzuführen, können wir die gemeinsame Spalte verwenden und mithilfe der folgenden Abfrage verschiedene Spalten aus separaten Tabellen abrufen.
sqlCopyselect 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
Wie in der obigen Abfrage zu sehen ist, verbinden wir drei Tabellen basierend auf der gemeinsamen Studentenidentität. Die Ausgabe des obigen Codes lautet wie folgt.
sqlCopyName 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
Hinweis: Im Ausgabeblock haben wir den Alias Name
, Email
und Marks
mit dem Schlüsselwort AS
in MySQL, um die Lesbarkeit des Programms zu erhöhen.
Daher können wir mit Hilfe der Klauseln WHERE
und ON
drei verschiedene Tabellen effizient verbinden und ihre Spalten basierend auf einer gemeinsamen Bedingung in MySQL als eine visualisieren.