SQL關聯查詢


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM