15.子查询之from型子查询

本节讲解from子查询及其用法

为了大家更好的理解,我将例子中需要的sql文件上传到了百度网盘,供大家食用。
链接:https://pan.baidu.com/s/1dqQS2sQj8QoCKi3UfN1wVA 密码:h7hh
from子查询

from:把内层的查询结果当成临时表,供外层查询。必须给表加上别名。
不太明白?举个栗子

需求:从products表中选出最便宜的5种商品,5种商品价格从高到低排序
怎么办?分两个步骤(为了便于理解,其实看步骤2就是from型子查询)
1. 按从低到高取出最便宜的5种商品。
2. 将步骤1的这5种商品逆序。(配合from子查询)

mysql> # 按从低到高取出最便宜的5种商品
mysql> select * from products order by prod_price limit 5;
+---------+---------+---------------+------------+-----------------------------------------------+
| prod_id | vend_id | prod_name     | prod_price | prod_desc                                     |
+---------+---------+---------------+------------+-----------------------------------------------+
| FC      |    1003 | Carrots       |       2.50 | Carrots (rabbit hunting season only)          |
| TNT1    |    1003 | TNT (1 stick) |       2.50 | TNT, red, single stick                        |
| FU1     |    1002 | Fuses         |       3.42 | 1 dozen, extra long                           |
| SLING   |    1003 | Sling         |       4.49 | Sling, one size fits all                      |
| ANV01   |    1001 | .5 ton anvil  |       5.99 | .5 ton anvil, black, complete with handy hook |
+---------+---------+---------------+------------+-----------------------------------------------+
5 rows in set (0.41 sec)

mysql> #将步骤1的这5种商品逆序(配合from子查询)
mysql> select * from (select * from products order by prod_price limit 5) as temp order by prod_price desc;
+---------+---------+---------------+------------+-----------------------------------------------+
| prod_id | vend_id | prod_name     | prod_price | prod_desc                                     |
+---------+---------+---------------+------------+-----------------------------------------------+
| ANV01   |    1001 | .5 ton anvil  |       5.99 | .5 ton anvil, black, complete with handy hook |
| SLING   |    1003 | Sling         |       4.49 | Sling, one size fits all                      |
| FU1     |    1002 | Fuses         |       3.42 | 1 dozen, extra long                           |
| FC      |    1003 | Carrots       |       2.50 | Carrots (rabbit hunting season only)          |
| TNT1    |    1003 | TNT (1 stick) |       2.50 | TNT, red, single stick                        |
+---------+---------+---------------+------------+-----------------------------------------------+
5 rows in set (0.84 sec)

如果想看其他有关于MySQL数据库的文章,请跳转到到MySQL自学目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值