從2張或多張表中,取出有關聯的數據
關聯查詢一共有幾種情況:
內連接:INNER JOIN 、CROSS JOIN
(1)形式一
select 字段列表
from A表 inner join B表
on 關聯條件
【where 其他篩選條件】
說明:如果不寫關聯條件,會出現一種現象:笛卡爾積
關聯條件的個數 = n - 1,n是幾張表關聯
on只能和join一起用
(2) 形式二
select 字段列表
from A表 , B表
where 關聯條件 【and 其他篩選條件】
外連接:左外連接(LEFT OUTER JOIN)
左連接:
第一種結果:A
select 字段列表
from A表 left join B表
on 關聯條件
第二種結果:A - A∩B
select 字段列表
from A表 left join B表
on 關聯條件
where 從表的關聯字段 is null
右外連接(RIGHT OUTER JOIN)
第一種結果:B
select 字段列表
from A表 right join B表
on 關聯條件
第二種結果:B - A∩B
select 字段列表
from A表 right join B表
on 關聯條件
where 從表的關聯字段 is null
全外連接(FULL OUTER JOIN)
使用union實現全連接的效果
(1)A ∪ B
select 字段列表
from A表 left join B表
on 關聯條件
union
select 字段列表
from A表 right join B表
on 關聯條件
(3)A ∪ B - A ∩ B
select 字段列表
from A表 left join B表
on 關聯條件
where 從表的關聯字段 is null
union
select 字段列表
from A表 right join B表
on 關聯條件
where 從表的關聯字段 is null
自連接:當table1和table2本質上是同一張表,只是用取別名的方式虛擬成兩張表以代表不同的意義