原創(chuàng)聲明:本文為作者原創(chuàng),未經(jīng)允許不得轉(zhuǎn)載,經(jīng)授權(quán)轉(zhuǎn)載需注明作者和出處
前面的都是兩個(gè)表聯(lián)表,其實(shí)還可以多個(gè)表聯(lián)表,并且可以多種聯(lián)表方式混合使用。
首先先添加一張表,插入一些數(shù)據(jù):
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);
這里假設(shè)一個(gè)老師只能教一個(gè)班。然后插入老師姓名,課程和班級id:
如果要用聯(lián)表查詢查出每個(gè)學(xué)生所在的班級,還有老師,以及老師所教的課程,那么可以這么做:
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;
結(jié)果大概是這樣。
這樣聯(lián)表的思路是,首先先用student表和class表聯(lián)表,以聯(lián)表之后的大表作為一張?zhí)摂M表,再用這張?zhí)摂M表和teacher表聯(lián)表,最后查詢出結(jié)果。
那么這樣一來,和第三張表聯(lián)表的方式可以是右聯(lián)還可以是自聯(lián),甚至還可以是其它后面要學(xué)到的查詢方式。