问个SQL语句2

来源:百度知道 编辑:UC知道 时间:2024/09/28 10:48:26
select merchandise_id from (select * from tb_sell_info where merchandise_id in (select id from tb_merchandise_info where sort_id=29)) sortMerchandise group by sortMerchandise.merchandise_id order by sum(amount) desc";
问下这个语句做了什么,如果字段名不 清楚的就直接翻译吧!,谢谢

select merchandise_id
-- 查询merchandise_id字段

from (select * from tb_sell_info where merchandise_id in
(select id from tb_merchandise_info where sort_id = 29)) sortMerchandise
--查询merchandise_id在select id from tb_merchandise_info where sort_id = 29的所有记录,并为查出的集合设置别名sortMerchandise

group by sortMerchandise.merchandise_id
--按照merchandise_id字段做集合函数,但你select处并没有集合函数

order by sum(amount) desc
--按照sum(amount)倒序排列

(select * from tb_sell_info where merchandise_id in (select id from tb_merchandise_info where sort_id=29))把这部分定义为sortMerchandise 表

其中括号内部分的意思是:从tb_sell_info选出所有列的记录,并且merchandise_id在tb_merchandise_info且sort_id=29的条件下能找到
最后按照merchandise_id汇总,并且按照sum(amount)总数倒序排列

获取在tb_sell_info表中merchandise_id字段属于(tb_merchandise_info表中sort_id字段等于29的id字段)
并且按照merchandise_id字段分组,按照sum(amount)排序