Sql語法之join表連線說明
Sql語法之join表連線說明
//左連線、右連線、內連線我們可以看成是在全連線的基礎上過濾條件,這樣比較容易理解
- 全連線Join
語法:
select * from A join B
查詢結果:
A表資料條數*B表資料條數 =查詢總條數
- 內連線:Inner join
語法:
select * from A inner join B on A.id=B.id
簡化寫法:
select * from A ,B where A.id=B.id
on後面的條件:
即可以是A表的過濾條件,也可以是B表的過濾條件,也可以是A表B表的關聯條件
查詢結果:
如果A有10條資料,B有10條資料,name全連線有10*10=100條資料,這100條資料中滿足on後面條件的有8條,那麼查詢結果就有8條資料
- 左連線Left join
語法:
select * from A left outer join B on A.id=B.id
on後面條件:
只能是A表和B表的關聯關係或者是B表的過濾條件。
如果在on後面寫了A表的過濾條件,無效(相當於沒寫)
查詢結果:
如果A有10條資料,B有10條資料,那麼全連線有10*10=100條資料,在這100條資料中,滿足條件的有8條資料,而且這8條資料中只包含5條A表的資料,也就是說A表中另外5條資料沒有出現,現在left join 以左表為基準,即使沒有滿足條件的值也需要查出來,所以結果是8+5=13條資料
沒有滿足條件的這5條資料關於B表的欄位都是null
- 右連線:Right join
同理左連線