mysql 聯結,級聯查詢總結區分

其實我對 數據庫的級聯或者聯結查詢一直都是會用,項目能查詢出來自己想要的結果即可。

畢竟SQL使用複雜的查詢畢竟比較少,而且不難使用。

至於區分他們,我還真的有點模糊。

在看 《SQL必知必會》這本書的時候,

from 多個表 和 級聯 join  查詢結果和 原理都是一樣的。

SELECT a.id,b.id from userbasicsinfo a,userbank b
where a.id=b.user_id;

SELECT a.id,b.id from userbasicsinfo a
INNER JOIN
userbank b on a.id=b.user_id;

SELECT a.id,b.id from userbasicsinfo a
 JOIN
userbank b on a.id=b.user_id;

以上 3中寫法都是一樣的,原理都是一樣的。
只是 from 多個表查詢,可能對於某些人看來有點不規範而已。

 

剩下的用的比較多的就是  left join , 反正我是沒用過 right join .

其實他們兩個是差不多。

也就是 以 from 的 表 爲主, 如果 left join  的表沒有 這個內容, 那麼顯示的內容就是空。

比如:

SELECT a.id,b.id from userbasicsinfo a
 LEFT OUTER JOIN
userbank b on a.id=b.user_id;



結果:

id  id1
1   
2    1
3     

 

 

 

left join 就是   LEFT OUTER JOIN  的縮寫, 都是一樣的

可以參考網友總結的更好

網友總結的

  A   left   join   B   的連接的記錄數與A表的記錄數同  
  A   right   join   B   的連接的記錄數與B表的記錄數同    
  A   left   join   B   等價B   right   join   A  

內連接        只連接匹配的行
左外連接        包含左邊表的全部行(不管右邊的表中是否存在與它們匹配的行),以及右邊表中全部匹配的行
右外連接        包含右邊表的全部行(不管左邊的表中是否存在與它們匹配的行),以及左邊表中全部匹配的行

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章