在 MySQL 中連線 3 個表
在本教程中,我們將學習如何在 MySQL 中連線三個表。
企業和組織可能必須基於所有三個表共有的特定匹配列同時視覺化三個表。在連線的幫助下,這個操作在 MySQL 中是允許的。
我們可以根據我們的要求從不同的表中獲取列,並根據所有共同的特定列連線表。例如,我們有三個名為 table_1
、table_2
和 table_3
的表。
第一個表有名字,第二個有姓氏,最後一個有地址。每個表都有一個主 ID,可以使用公共主 ID MySQL 將這些表合併或視覺化為一個表。
讓我們瞭解這種方法是如何工作的。但在開始之前,我們必須通過建立一個表 student_details
以及幾行來建立三個虛擬資料集。
-- 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");
要檢視資料中的條目,我們使用以下程式碼。
SELECT * FROM student_details;
輸出:
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
接下來,我們需要另一個名為 student_marks
的表,其中包含與 stu_id
對應的每個學生的分數。我們可以使用以下查詢建立這樣的表。
-- 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);
我們可以使用以下查詢視覺化該表。
SELECT * from student_marks;
輸出:
stu_id stu_marks
1 10
2 20
3 30
4 7
5 9
6 35
7 15
最後,讓我們建立一個名為 student_email
的第三個表。該表將擁有 stu_id
和 stu_email
列。stu_id
列對於所有三個表都是通用的,而 stu_email
列將代表正在考慮的學生的電子郵件地址。
我們可以在以下查詢的幫助下建立第三個表。
-- 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");
我們可以使用以下查詢視覺化上面建立的 student_email
表。
SELECT * from student_email;
輸出:
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
讓我們嘗試在公共列 stu_id
的幫助下從上面建立的三個表中獲取三個值,特別是學生的名字、分數和電子郵件地址。
在 MySQL 中連線 3 個表
要合併我們的三個表,我們可以使用公共列並藉助以下查詢從不同的表中獲取不同的列。
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
如上面的查詢所示,我們正在根據共同的學生身份連線三個表。上面程式碼的輸出如下。
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
Name
、Email
和 Marks
以及 MySQL 中的 AS
關鍵字,以增加程式的可讀性。因此,藉助 WHERE
和 ON
子句,我們可以有效地連線三個不同的表,並根據 MySQL 中的常見條件將它們的列視覺化為一個。