MySQL多表查询

1. 嵌套查询
主要用于顺藤摸瓜式的从另一张表查出本表某些字段的具体的值。
例如,Dept表只有部门编号,如果想要查出部门的名称就要使用另一张表(Emp)。

这里写图片描述

- 2.内联结查询

笛卡尔积。

(a,b)×(1,2)= (a1,a2,b1,b2)

如果将表看做集合,每个元素就是一个记录,则表和表的笛卡尔积就是记录×记录的组合。

多表查询的内联结查询通常要生成笛卡尔积然后再加上条件约束,就得到要筛选的数据。

内联结的写法:

传统的:在from后面摆上多个表,+where子句写上表之间的联结条件。

这里写图片描述

新的写法:
from 表1 inner join 表2 on 联结条件.

这里写图片描述

  • 3.自联结查询

将同一张表通过重命名变成另一张表然后进行多表内联结查询。

这里写图片描述

- 4.子查询

将查询的结果当做一个表,然后再去查询。
要点:通过select输出得到一张临时表,重命名,然后再以新表名去查询。

这里写图片描述

- 5.外联结查询

两张表查询,内联结是满足两表的关系的记录才被筛选出来,外联结是以一张表为基础,查询另一张表的记录,如果没有则用NULL来表示。
有左外联结和右外联结区分,左外联结以前面的表为基准,右外则以后面的为基准。

这里写图片描述

- 6.联合查询

将多个表的查询结果用union组合在一起。

这里写图片描述

字段名字可以不同,但是列数必须要相同。
查询的结果会自动去重,如果不要去重,使用union all。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值