原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處
前面的都是兩個表聯表,其實還可以多個表聯表,并且可以多種聯表方式混合使用。
首先先添加一張表,插入一些數據:
USE coupletDemo;
CREATE TABLE teacher(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(5) NOT NULL,
course VARCHAR(5) NOT NULL,
class_id INT,
PRIMARY KEY(id)
);
INSERT INTO teacher (name, course, class_id) VALUES ('老師1', '吃人', 1);
INSERT INTO teacher (name, course, class_id) VALUES ('老師2', '除妖', 2);
這里假設一個老師只能教一個班。然后插入老師姓名,課程和班級id:
如果要用聯表查詢查出每個學生所在的班級,還有老師,以及老師所教的課程,那么可以這么做:
SELECT s.id sid, s.name sname, s.gender sgender,s.stu_no sno,c.name cname, t.name, t.course FROM student s LEFT JOIN class c ON s.class_id = c.id LEFT JOIN teacher t ON t.class_id = c.id;
結果大概是這樣。
這樣聯表的思路是,首先先用student表和class表聯表,以聯表之后的大表作為一張虛擬表,再用這張虛擬表和teacher表聯表,最后查詢出結果。
那么這樣一來,和第三張表聯表的方式可以是右聯還可以是自聯,甚至還可以是其它后面要學到的查詢方式。