SQL關聯查詢

從2張或多張表中,取出有關聯的數據blog

關聯查詢一共有幾種狀況:io

內鏈接:INNER JOIN 、CROSS JOINtable

(1)形式一select

select 字段列表nio

from A表 inner join B表im

on 關聯條件d3

【where 其餘篩選條件】數據

說明:若是不寫關聯條件,會出現一種現象:笛卡爾積查詢

關聯條件的個數 = n - 1,n是幾張表關聯img

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本質上是同一張表,只是用取別名的方式虛擬成兩張表以表明不一樣的意義

相關文章
相關標籤/搜索