• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql中join,left join,right join 的差异

mysql 搞代码 7年前 (2018-06-04) 111次浏览 已收录 0个评论

mysql中join,left join,right join 的区别
先看例子:
首先是join

 select vend_name ,prod_price,prod_name from products join vendors on vendors.vend_id = products.vend_id; 

欢迎大家阅读mysql中join,left join,right join 的差异》,跪求各位点评,by 搞代码

结果

 +-----------------+------------+---------------------+ | vend_name       | prod_price | prod_name           | +-----------------+------------+---------------------+ | Bears R Us      | 5.99       | 8 inch teddy bear   | | Bears R Us      | 8.99       | 12 inch teddy bear  | | Bears R Us      | 11.99      | 18 inch teddy bear  | | Doll House Inc. | 3.49       | Fish bean bag toy   | | Doll House Inc. | 3.49       | Bird bean bag toy   | | Doll House Inc. | 3.49       | Rabbit bean bag toy | | Doll House Inc. | 4.99       | Raggedy Ann         | | Fun and Games   | 9.49       | King doll           | | Fun and Games   | 9.49       | Queen doll          | +-----------------+------------+---------------------+ 

left join

 select vend_name ,prod_price,prod_name from products left  join vendors on vendors.vend_id = products.vend_id; 

结果

 +-----------------+------------+---------------------+ | vend_name       | prod_price | prod_name           | +-----------------+------------+---------------------+ | Doll House Inc. | 3.49       | Fish bean bag toy   | | Doll House Inc. | 3.49       | Bird bean bag toy   | | Doll House Inc. | 3.49       | Rabbit bean bag toy | | Bears R Us      | 5.99       | 8 inch teddy bear   | | Bears R Us      | 8.99       | 12 inch teddy bear  | | Bears R Us      | 11.99      | 18 inch teddy bear  | | Doll House Inc. | 4.99       | Raggedy Ann         | | Fun and Games   | 9.49       | King doll           | | Fun and Games   | 9.49       | Queen doll          | +-----------------+------------+---------------------+ 

right join的情况呢

 select vend_name ,prod_price,prod_name from products right  join vendors on vendors.vend_id = products.vend_id; 

 +-----------------+------------+---------------------+ | vend_name       | prod_price | prod_name           | +-----------------+------------+---------------------+ | Bear Emporium   | NULL       | NULL                | | Bears R Us      | 5.99       | 8 inch teddy bear   | | Bears R Us      | 8.99       | 12 inch teddy bear  | | Bears R Us      | 11.99      | 18 inch teddy bear  | | Doll House Inc. | 3.49       | Fish bean bag toy   | | Doll House Inc. | 3.49       | Bird bean bag toy   | | Doll House Inc. | 3.49       | Rabbit bean bag toy | | Doll House Inc. | 4.99       | Raggedy Ann         | | Fun and Games   | 9.49       | King doll           | | Fun and Games   | 9.49       | Queen doll          | | Furball Inc.    | NULL       | NULL                | | Jouets et ours  | NULL       | NULL                | +-----------------+------------+---------------------+ 

总结:join 的结果会和left join或者right join的其一的结果一样,顺序不同,不知道为什么呢,left join 左联结优先考虑左表,即products ,得到的结果行数和products表的行数一样,right join 右联结,有线考虑右表,即vendors ,得到的结果和右表vendors的行数一样,无法匹配的时候用NULL值填充。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql中join,left join,right join 的差异

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址