標籤:mysql資料庫
MySQL多表串連查詢
多表串連查詢:
create table class(
cid int primary key auto_increment,
cname varchar(20)
)default charset=‘utf8‘;
create tablr stu(
sid int primary key auto_increment,
sname varchar(20).
cid int
);default charset=‘utf8‘;
insert into class(name) values(‘一班‘);
insert into class(name) values(‘二班‘);
insert into class(name) values(‘三班‘);
insert into class(name) values(‘四班‘);
insert into class(name) values(‘張三‘,1);
insert into class(name) values(‘李四‘,2);
insert into class(name) values(‘王五‘,2);
insert into class(name) values(‘楊六‘,3);
insert into class(name) values(‘趙七‘,5);
insert into class(name) values(‘周八‘,6);
select * from class;
select * from stu;
-------------------------------------
交叉串連:--沒有任何條件,只需要將多張表的所有資料排列顯示出來
select * from class,stu;
內串連:建立在兩張或多張表之間,存在資料的關聯關係
inner join
select * from 表A INNER JOIN 表B on 串連條件;
等價於
select * from 表A,表B where 表A.欄位=表B.欄位;
兩張表:
select * from class INNER JOIN stu ON class.cid=stu.cid;
select * from class,stu, 表C WHERE class.cid=stu.cid AND 表A.欄位=表C.欄位;
三張表:
select * from student s,course c,score sc WHERE s.sid=sc.sid AND c.cid=sc.cid;
外串連:
左外串連 LEFT JOIN / LEFT OUTER JOIN
右外串連 RIGHT JOIN / RIGHT OUTER JOIN
外串連:左表或右表作為主表的情況下,主表的全部內容都會顯示,而另一張表沒有對應的資料則會補null
select * from class c LEFT JOIN stu s ON c.cid=s.cid;
select * from class c RIGHT JOIN stu s ON c.cid=s.cid;
MySQL多表串連查詢