right join 以右邊的表爲參考,左邊的表可能出現空值。同上。
如一個例子
表a
表b
①兩個表a,b連接,取出id相同的字段
select * from a
inner join b
on a.aid=b.bid;
結果爲:
換一下順序
select * from a
inner join b
on a.aid=b.bid;
結果爲
發現結果一樣,只是結果的排列順序有變化。由此可以得出inner join並不以誰爲準,只顯示符合條件的記錄。
②那麼left join指:
select * from a
left join b
on a.aid = b.bid;
此時結果爲:
首先取出a中所有數據,然後再加上與a,b匹配的數據,發現表b中出現null值。
③right join是指
select * from a
right join b
on a.aid = b.bid;
結果爲:
同理,a中出現null值。
再舉一個例子。
表c
表d
①inner join時
select * from c
inner join b
on c.cID = d.dID;
結果爲:
調一下順序
select * from d
inner join c
on c.cID = d.dID;
結果爲
發現二者結果仍然一樣。
②left join時
select * from c
left join b
on c.cID = d.dID;
結果爲:
③right join時
select * from c
right join b
on c.cID = d.dID;
結果爲:
通過以上結果可以看出,
left join 以左表爲基準,會列出左表所有記錄,然後列出右表所有符合條件的記錄。
right join則以右表爲基準,列出右表所有記錄,再列出左表所有符合條件的記錄。
inner join則不以任何表爲基準,只列出符合條件的記錄。