MySQL基础学习笔记——子查询

子查询

  • 定义:在一个select语句中,嵌入了另外一个select语句,那么被嵌入的select语句称之为子查询语句,外部那个select语句称为主查询
  • 主查询和子查询的关系:
    • 子查询是嵌入到主查询中的;
    • 子查询是辅助主查询的,要么充当条件,要么充当数据源
    • 子查询是可以独立存在的语句,是一条完整的select语句。

标量子查询

  • 子查询结果是一个值的语句。
# 查询 价格表中 价格大于平均价格的记录
# 第一步:计算平均价格,结果:14
select avg(price) from price;
# 第二步:查询大于平均价格14的记录
select * from price where price>14;
# 第三步:合并两条SQL语句
select * from price where price>(select avg(price) from price);

列级子查询

  • 子查询结果是一个列多个值的语句。
# 查询hero表和gongfu表所有英雄使用的技能
# 第一步:查出所有英雄使用的技能id,结果是1,2,3,5
select gongfuid from hero;
# 第二步:根据id查出对应技能名称
select name from gongfu where id in (1, 2, 4, 5);
# 第三步:合并两个语句
select name from gongfu where id in(select gongfuid from hero);

行级子查询

  • 子查询结果是多个字段值的语句。
# 查询price表中单价最高并且同时使最重的记录
# 第一步:查询最高的单价,结果是80
select max(price) from price;
# 第二步:查询最重的,结果是1.49
select max(weight) from price;
# 第三步:根据两个结果查询
select * from price where price=80 and weight=1.49;
# 第四步:换一种格式
select * from price where (price, weight)=(80, 1.49);
# 第五步:合并
select * from price where (price, weight) = (select max(price), max(weight) from price);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼义虎神

打赏5C币,作者可获得4C币

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值