mysql的三种连接方式

SQL的三种连接方式分为:左外连接、右外连接、内连接,专业术语分别为:LEFT JOIN、RIGHT JOING、INNER JOIN
  内连接INNER JOIN:使用比较运算符来根据指定的连接的每个表都有的列的值来进行匹配连接,如果对应的列值不存在,则连接的所有表对应的该列值都不会进行连接,也就是说都会别抛弃;

#####   举个例子

-------------------------------------------------
  a表     id   name     b表     id   job   parent_id   
              1   张3                   1     23     1   
              2   李四                 2     34     2   
              3   王武                 3     34     4       
  a.id同parent_id   存在关系   

--------------------------------------------------  

//进行INNER JOIN
SELECT * FROM (a INNER JOIN b ON a.id=b.parent_id);

最终输出的结果为:
a.id    a.name     b.id     b.job     b.parent_id
1        张三        1        23          1
2        李四        2        34          2
//因为a.id=3在b中不存在对应的值,b.parent_id=4再a中也不存在,因此都被抛弃

#####    左外连接LEFT JOIN/LEFT OUTTER JOIN:如果左表的某行在右表中没有找到对应的匹配项,那么左表该行在连接表中对应的右表数据都为null;而右表中的某行在坐标中没有找到对应的匹配项,就被抛弃 #####   举个例子
-------------------------------------------------
  a表     id   name     b表     id   job   parent_id   
              1   张3                   1     23     1   
              2   李四                 2     34     2   
              3   王武                 3     34     4       
  a.id同parent_id   存在关系   

--------------------------------------------------  

//进行LEFT JOIN
SELECT * FROM (a LEFT JOIN b ON a.id=b.parent_id);

最终输出的结果为:
a.id    a.name     b.id     b.job     b.parent_id
1        张三        1        23          1
2        李四        2        34          2
3        王五       null     null        null

//因为a.id=3在b中不存在对应的值,所以对于左外连接来说该行对应的右表中的数据的值都为null

#####    右外连接RIGHT JOIN/RIGHT OUTTER JOIN: 与左外连接类似,只不过是右表对应的数据在左表中没有找到匹配项,该行对应的左表数据就被设置为null,左表对应的数据在右表中没有找到匹配项,就被抛弃,例子就不列举了

##### 文章摘自:http://www.blogjava.net/zolly/archive/2007/10/23/SQLJION.html
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值