from 型子查询
在学习 from 子查询之前,需要理解一个概念:查询结果集在结构上可以当成表看,那就可以当成临时表对他进行再次查询:
取出每个栏目下 goods_id 最大的商品信息:
首先执行下面这句语句以后,能得到一个结果,其中每个栏目的第一行都是 goods_id 最大的行:
select goods_id,cat_id,goods_name from goods order by cat_id asc,goods_id desc;
假设存在这张表,表名叫 tmp ,那么:
select * from (select goods_id,cat_id,goods_name from goods order by cat_id asc,goods_id desc) as tmp group by cat_id;
不过上面这句语句在 8.0 或者某些 5.7版本中会报错。本段主要是为了理解 from 型子查询,实际业务中按照实际情况写语句即可,中心思想就是把结果当成表看,然后起一个别名。
exists 型子查询
网友评论