SQL中多表查询:左连接、右连接、内连接、全连接、交叉连接

一、左连接,右连接,内连接关系

左连接:左表全部+两个表交集(①+②)

右连接:右表全部+两个表交集(③+②)

内连接:两个表交集(②)

二、结合具体例子看(已经在mysql中执行过的例子,可以运行,没有错误)

表1

表2

1、左连接(left join)

     返回左表所有行,右表与之匹配记录,若没有,返回null

select a.id,a.name,b.address from empi_patient a LEFT JOIN empi_patient_copy2 b on a.id = b.id

执行结果:

2、右连接(right join)

      返回右表所有行,左表与之匹配记录,若没有,返回null

SELECT b.id,a.name,b.address from empi_patient a RIGHT JOIN empi_patient_copy2 b on a.id = b.id

3、内连接(inner join ,其中inner可省略)

     返回两表的交集记录,返回2个表中完全符合条件的记录,结果集中表的字段内容均来自各自的表。

SELECT b.id,a.name,b.address from empi_patient a INNER JOIN empi_patient_copy2 b on a.id = b.id         --inner join 

SELECT b.id,a.name,b.address from empi_patient a JOIN empi_patient_copy2 b on a.id = b.id --join

4、全连接(full join)

     Mysql不支持全连接

5、交叉连接(cross join)

     没有条件限制的交叉连接,将产生连接所涉及的表的笛卡尔积

SELECT b.id,a.name,b.address from empi_patient a CROSS JOIN empi_patient_copy2 b

 加上条件,和内连接一样了

SELECT b.id,a.name,b.address from empi_patient a CROSS JOIN empi_patient_copy2 b on a.id = b.id

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值