left join、right join和inner join区别

  1. left join(左连接) 返回包括左表中的所有记录和右表中联结字段相等的记录
  2. right join(右连接) 返回包括右表中的所有记录和左表中联结字段相等的记录
  3. inner join(等值连接) 只返回两个表中联结字段相等的行

实例

  1. A表(Order)
    在这里插入图片描述

  2. B表(Customer)
    在这里插入图片描述

  3. select * from order as o left join customer as c on o.cust_id = c.cust_id

    运行结果
    在这里插入图片描述
    可以看出 left join(左连接) 返回了左表(这里是Order表)的所有记录,右表只返回了符合约束条件的记录(条件是o.cust_id = c.cust_id),然后右表字段不足的用null填充

  4. select * from order as o right join customer as c on o.cust_id = c.cust_id

    运行结果
    在这里插入图片描述
    可以看出right join(右连接)返回了右表(这里是Customer表)的所有记录,左表只返回了符合约束条件的记录(条件是o.cust_id = c.cust_id),然后左表字段不足的用null填充

  5. select * from order as o inner join customer as c on o.cust_id = c.cust_id

    运行结果
    在这里插入图片描述
    可以看出inner join(等值连接)只返回两者中满足约束条件的记录,多余的不会返回

ps

  1. 对于left join,不管on后面跟什么条件,左表的数据全部查出来,因此要想过滤需把条件放到where后面,where位于on后面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值