程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql---左連接、右連接、內連接之間的區別與聯系

mysql---左連接、右連接、內連接之間的區別與聯系

編輯:MySQL綜合教程

現有兩張表

第一張表為男生表,記錄了男生的姓名和配偶的編號

\

第二張表為女生表,記錄了女生的姓名和自己的編號

\

第一種情況:<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPtb3s9bIy8fry/nT0MTQyfq2vMnPzKijrLKix9K0+MnP19S8urXExeTFvKGj1eLKsbK7udzE0Mn609DDu9PQxeTFvLa80qrJz8yoo6zL+dLUysfS1MTQyfqx7c6qu/nXvLnYwarFrsn6se08L3A+CjxwPr/J0tS/vMLH08PX88GsvdM8L3A+CjxwPjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140617/2014061708594921.jpg" alt="\">

屌絲比較悲劇,在女生表中沒有他的配偶,所以gname和gname.other都為NULL。高富帥肯定美女環抱,所以有多行記錄。

第二種情況:主持人請所有女生都上台,並且帶上自己的配偶。這時不管女生有沒有配偶都要上台,所以是以女生表為基准關聯男生表

可以考慮用左連接

\

小美也比較悲劇,在男生表中沒有對應的配偶,所以bname和bname.other都為NULL。至於小嬌、小芝、小琳跟高富帥和小王的關系就比較亂了,也有多行。

第三種情況:主持人請所有有配偶的男女生上台,這是就可以用內連接了


可見boy left join girl on boy.other = girl.other含義是:在girl表中找到滿足條件boy.other = girl.other的行與boy表中對應的行組合,boy表中沒有在girl表中匹配的行補NULL。

左右連接及內連接的關系:

左右連接可以相互轉換。A left join B on 條件 等價於 B left join A on 條件

內連接 A inner join B on 條件 是 A left join B on 條件 和 B right join A on 條件的交集。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved