現有兩張表
第一張表為男生表,記錄了男生的姓名和配偶的編號
第二張表為女生表,記錄了女生的姓名和自己的編號
第一種情況:<喎?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 條件的交集。