目錄標題
- ?**多表查詢的格式**
- ?**查詢前說明**
- 一.**使用內連接**`inner join`**進行多表查詢**
- **1.介紹**
- **2.事例**
- 二.**使用外連接**`outer join`**進行多表查詢**
- 1.**介紹**
?多表查詢的格式
- 其一
select *|字段列表
from 表1[查詢類型] join 表名2 on 連接條件
[ [查詢類型] join 表名3 on 連接條件 ]
[……]
[ where 查詢條件 ]
[ order by 字段名 [asc|desc] ]
[……;]
- 其二
select *|字段列表from 表1,表2[,表3,……]where 連接條件 and 查詢條件
[ order by 字段名 [asc|desc] ]
[……;]
?查詢前說明
-
①為了區分多張表中,出現的 重復字段名,可以使用
表名.字段名
的形式,星號(*) 表示 多張表 的所有字段,如果指定 某一張表 中的所有字段,可以使用表名.*
的形式 -
②連接類型主要包括 內鏈接(inner), 左外鏈接(left outer), 右外鏈接(right outer)
一.使用內連接inner join
進行多表查詢
1.介紹
內鏈接 (inner join) 是最常用的查詢形式
內連接是指 多個表 通過連接條件中 共享列的值 進行的比較連接,inner
關鍵字可以省略
?當 未指明 連接類型時,默認為 內鏈接
顯示連接的表中 所有匹配數據的行
2.事例
- ①查詢所有女生的學號,姓名,性別,課程ID和成績(
student
表與score
表)
select ……
from student
inner join score on student.id = score.sId
where sex = '女'
order by score desc;
- 方式二
select ……
from student,score
where student.id = score.sId and sex ='女';
- ②查詢 學號(sNo)為 13452830 學生的學號,姓名,性別,班級(
student
表中)
課程名(course
表中)
成績(score
表中)
select ……
from student
inner join score on student.id = score.sId
inner join course on course.id = score.cId
where sNo in ('13452830');
- ?要點
再超過兩個表之間聯立時,要注意
查詢的條件 要在 表被聲明后 才可應用
二.使用外連接outer join
進行多表查詢
1.介紹
外連接主要又分為 左外連接 和 右外連接 介紹如下
-
左外連接 (
left outer join
)
(左表為主表)
對于來自左表 (寫在此關鍵字左邊的表) 的行,如果 右表 (寫在此關鍵字右邊的表) 沒有發現匹配的行,那么來自 右表 的數據,在此位置將顯示null
值,outer
關鍵字 可以省略 -
右外連接 (
left outer join
)
(右表為主表)
對于來自右表 (寫在此關鍵字右邊的表) 的行,如果 左表 (寫在此關鍵字左邊的表) 沒有發現匹配的行,那么來自 左表 的數據,在此位置將顯示null
值,outer
關鍵字 可以省略