子查询和内外链接查询

导入表

 

 

  

 

注意外键的对应

内连接

#语法1 select * from 表1,表2 where 表1.主键=表2.外键

#语法2 select * from 表1 inner join 表2 on 表1.主键=表2.外键

 示例:

这里我们因为是中间用的一个链接表将他们链接在一起,所以这里就让t_usert_user_role内连接显示下

语法1:

select * from t_user,t_user_role where t_user.id=t_user_role.user_id

查询如下图所示 

语法2 :

select * from t_user inner join t_user_role on t_user.id=t_user_role.user_id

查询效果如下图 

 

外连接 

--左外链接(以左表为主表,会把左表数据全部查询出来)

#语法 select * from 表1 left[outer] join 表2 on 表1.主键=表2.外键

--右外连接(以右表为主表,会把右表数据全部查询出来)

#语法 select * from 表1 right[outer] join 表2 on 表1.主键=表2.外键

  示例:

内链接是将两个表信息全部都显示出来,外连接是放左或者放右,一般外连接不会用来查全部,都是用来查单个几个表连一起内容

左外链接:

select * from t_user left join t_user_role on t_user.id=t_user_role.user_id 

 查询效果如下图 

右外链接: 

select * from t_user right join t_user_role on t_user.id=t_user_role.user_id 

效果如图所示 

 

通过左右外连接,大家不难发现就是王五没有另一个表的信息,所以就不会显示出来,左连接是将坐标当主表全部查出来,右表的有的才会显示,右链接就是以右表为主表,会把右表数据全部查询出来

子查询

示例:张三拥有哪些角色

select * from t_role where id in (select role_id from t_user_role where user_id in(select id from t_user where name='张三'))

  

 这段分解就是

select * from t_role where id in(1,2)

select role_id from t_user_role where user_id=1


select id from t_user where name='张三'

 

 可以发现就是将他们一段一段分解之后再进行替换,这边是子查询

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值