Verbinden 3 Tabellen in MySQL

Preet Sanghavi 28 März 2022
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.

SQL
 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.

SQL
 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.

SQL
 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.

SQL
 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.

SQL
 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.

SQL
 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.

SQL
 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.

SQL
 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.

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

Verwandter Artikel - MySQL Join