SQL学习之外部连接

inner join(等值连接) 只返回两个表中联结字段相等的行,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。   
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录,对寻找孤儿记录很有用。所谓“孤儿记录”就是那些在主表中没有相关记录的相关表中的记录,孤儿记录是违反引用一致性规则的结果。
on 指定表间联结字段及其关系的等号 "=" 表达式, 返回 true 或 false. 当表达式返回 true 时, 则查询中包含该记录.
!外部连接只能操作已存在于数据库中的数据

MySQL中的外连接示例:


  MySQL>   select   *   from   a1;  
   
  BBB  
  ----------  
  101  
  102  
  103  
  104  
  105   
    
   MySQL>   select   *   from   a2;  
   
  BBB                 CCC  
  ----------   --------------------  
  101  
  102  
  105   
    
   MySQL>   select   *   from   a1 right  join a2   on a1.bbb = a2.bbb;  
   
  BBB                 BBB                 CCC  
  ----------   ----------   --------------------  
  101                 101  
  102                 102  
  105                 105   
    
   MySQL>   select   *   from   a1 left  join a2   on a1.bbb = a2.bbb;    
    
  BBB                 BBB                 CCC  
  ----------   ----------   --------------------  
  101                 101  
  102                 102  
  103  
  104  
  105                 105   
    
   MySQL>

全外连接可以用变相的方法: 2个outer join 来实现
参考:
select * from apples as a
     left outer join oranges as o on a.price = o.price
union
select * from apples as a
     right outer join oranges as o on a.price = o.price


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值