關於數據庫的左,右,內,外連接,Union和Union all---------筆記


1.左連接

select a.filed1,a.filed2,b.filed1

from a (左表)

left join b(右表)

on a.commonfiled = b.commonfiled

查詢思路:按照匹配字段(外鍵),b表記錄與a表記錄進行逐一匹配,若有n條匹配,則形成n行。若無匹配,則左表中得記錄是全的,即使右表沒有匹配的字段存在

 

2.右連接

select a.filed1,a.filed2,b.filed1

from a (左表)

right join b(右表)

on a.commonfiled = b.commonfiled

查詢思路:按照匹配字段(外鍵),a表記錄與b表記錄進行逐一匹配,若有n條匹配,則形成n行。若無匹配,則右表中得記錄是全的,即使左表沒有匹配的字段存在 ()

 

3.內連接

select a.filed1,a.filed2,b.filed1

from a (左表)

inner join b(右表)

on a.commonfiled = b.commonfiled

查詢思路:按照匹配字段(外鍵)進行逐一匹配,至少有一條匹配,才形成一行,若有n條匹配,則形成n行。(即:外鍵匹配形成行

 

4.全連接

select a.filed1,a.filed2,b.filed1

from a (左表)

full join b(右表)

on a.commonfiled = b.commonfiled

查詢思路:按照匹配字段(外鍵)進行逐一匹配,有匹配的則匹配成一行,無匹配的則單獨成一行。

5.交叉連接

全部匹配。即:生成笛卡爾積連接

 6.Union 和 Union  all

Union和union all表示把查詢的結果集並集起來,而不是交集

限制: union和union all進行並集的字段必須是同一數據類型

  • union 是去掉重復值 union all不去掉重復值

union用法

select a.filed1 from a union b.filed1 from b 

union all 用法

select a.filed1 from a union all  b.filed1 from b 

 

 


免責聲明!

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



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