where型子查询 将内层的查询当做外层查询的比较条件。
对于where子查询:
(1)如果where 列 = (内层sql),则内层sql必须返回单行单列;
(2)如果where 列 in(内层sql),则内层sql必须返回单列。
1、查出本网站goods_id最大的一条商品
思路1:按goods_id desc排序再取第一行
select goods_id,goods_name from goods order by goods_id desc limit 1;
思路2:子查询,第一先将goods_id最大的值拿出来,然后通过子查询实现
select goods_id,goods_name from goods where goods_id = ( select max(goods_id) from goods);
2、查询出每个栏目下id号最大的一条商品.
思路:第一步先查出每个栏目下最大的goods_id
select max(goods_id) from goods group by cat_id;
±--------------+
| max(goods_id) |
±--------------+
| 16 |
| 32 |
| 18 |
| 23 |
| 7 |
| 6 |
| 26 |
| 30 |
| 28 |
±--------------+
第二步:查出每个栏目下最大的goods_id后
mysql子查询:查出本网站goods_id最大的一条商品和每个栏目下id号最大的一条商品.
本文介绍了如何利用MySQL子查询来查询网站中goods_id最大的商品,以及每个栏目下id号最大的商品。通过两种不同的查询思路,包括排序后取第一行和使用子查询对比最大值,详细展示了查询过程。最后,结合内层查询结果,使用WHERE子句筛选出每个栏目下id号最大的商品。
摘要由CSDN通过智能技术生成