SQL語句之如何用JOIN連接多個表
SQL語句 用JOIN連接多個表
連接兩個數(shù)據(jù)表的用法 :
SELECT * FROM actor INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id ;
語法格式可以概括為:
FROM 表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號
連接三個數(shù)據(jù)表的用法:
SELECT * FROM (actor INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id) INNER JOIN film ON film_actor.film_id = film.film_id;
語法格式可以概括為:
FROM (表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號) INNER JOIN 表3 ON 表1.字段號=表3.字段號
連接四個數(shù)據(jù)表的用法:
SELECT * FROM ((actor INNER JOIN film_actor ON actor.actor_id = film_actor.actor_id) INNER JOIN film ON film_actor.film_id = film.film_id) INNER JOIN film_category ON film_actor.film_id = film_category.film_id;
語法格式可以概括為:
FROM ((表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號) INNER JOIN 表3 ON 表1.字段號=表3.字段號) INNER JOIN 表4 ON Member.字段號=表4.字段號
還可以使用 USING
USING要求,負責連接的兩個實體之間的字段名稱一致。
建議是,在兩個表中,有同名字段時,使用USING;而在通用條件時,使用ON。
SELECT * FROM actor INNER JOIN film_actor USING(actor_id);
語法格式概括為:
FROM 表1 INNER JOIN 表2 USING(同名字段名);
SQL語句多表連接查詢語法
總結(jié):內(nèi)連接就是兩個表的交集 ,左外連接就是左邊表加兩表交集 ,右外連接就是右邊表加兩表交集

一、外連接
1.左連接 left join 或 left outer join
SQL語句:select * from student left join score on student.Num=score.Stu_id;
2.右連接 right join 或 right outer join
SQL語句:select * from student right join score on student.Num=score.Stu_id;
3.完全外連接 full join 或 full outer join
SQL語句:select * from student full join score on student.Num=score.Stu_id;
通過上面這三種方法就可以把不同的表連接到一起,變成一張大表,之后的查詢操作就簡單一些了。
交叉連接查詢,這種查詢方式基本不會使用,原因就是這種查詢方式得到的是兩個表的乘積(笛卡兒集)
語法就是select * from a,b;則盡量不使用此語句,產(chǎn)生的結(jié)果過于繁瑣。
內(nèi)連接查詢,可以有效的去除笛卡爾集現(xiàn)象
內(nèi)連接查詢分為兩類:
二、內(nèi)連接
join 或 inner join
SQL語句:select * from student inner join score on student.Num=score.Stu_id;
此時的語句就相當于:select * from student,score where student.ID=course.ID;
內(nèi)連接查詢分為兩類:
隱式內(nèi)連接
select * from A,B where 條件 隱式連接使用別名:
select * from A 別名1,B 別名2 where 別名1.xx=別名2.xx;
顯示內(nèi)連接
select * from A inner join B on 條件 (inner可以省略) 顯示連接使用別名:
select * from A 別名1 inner join B 別名2 on 別名1.xx=別名2.xx
舉例:
三、交叉連接
cross join,沒有where指定查詢條件的子句的交叉聯(lián)接將產(chǎn)生兩表的笛卡爾積。
SQL語句:select * from student cross join score;
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL數(shù)據(jù)更新操作的兩種辦法(數(shù)據(jù)可視化工具和SQL語句)
MySQL是最常用的數(shù)據(jù)庫,在數(shù)據(jù)庫操作中,基本都是增刪改查操作,簡稱CRUD,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)更新操作的兩種辦法,需要的朋友可以參考下2023-03-03
MySQL使用SHOW PROCESSLIST的實現(xiàn)
本文主要介紹了MySQL使用SHOW PROCESSLIST的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-03-03

