MySQL 几种连表查询详解

第一步:首先介绍表连接分类(内连接,外连接,交叉连接)和连接方法(如下):

A)内连接:join,inner join

B)外连接:left join,left outer join,right join,right outer join,union

C)交叉连接:cross join

第二步:建表两张users表,success表
在这里插入图片描述
第三步,写SQL,测试结果

内连接(只有一种场景)inner join 或者join(两种方式结果相同)

sql语句

select u.*, s.* from users u  join success s  on u.id = s.id
或
select u.*, s.* from users u  inner join success s  on u.id = s.id

运行结果:
在这里插入图片描述
这种场景下得到的是满足某一条件的A,B内部的数据;正因为得到的是内部共有数据,所以连接方式称为内连接。

外连接(左连接,右连接),以左连接为例

左连接SQL语句:

select u.*,s.* from users u   left outer join success s    on u.id = s.id
或者
select u.*,s.* from users u   left  join success s    on u.id = s.id

运行结果:
在这里插入图片描述

右连接SQL语句:
   
select u.*,s.* from users u   right outer join success s    on u.id = s.id
或者
select u.*,s.* from users u   right  join success s    on u.id = s.id

运行结果:
在这里插入图片描述
左连接以左表为基表,查询左表所有数据以及关联的右表数据,如果右表没有关联数据以null补齐。
右连接以右表为基表,查询右表所有数据以及关联的左表数据,如果左表没有关联数据以null补齐。

交叉连接:cross join

SQL语句:

select a.*,b.* from users a   cross  join success b 

运行结果:
在这里插入图片描述
这个时候会显示users表跟success表每条数据都连接一下的结果,这个就是笛卡儿积

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值