问题描述
- 根据商品的平均评分数排序
-
select a.id,a.name,a.price,a.img_source,a.rating from (select distinct s.id,s.name,p.price,z.img_source,g.rating from pr_price p,
cl_product_address d,cl_product_image z,cl_category_product_rel k,cl_product_i18n s left join(select u.product_id,avg(u.rating) rating from mb_product_comments u group by u.product_id) g on s.id=g.product_id
where p.product_id=s.id and k.product_id=s.id and k.catalog_id=150 and p.sale_channel=3 and p.price_type='SILVER_MEMBER_PRICE' and s.id=z.product_id
and d.product_id=s.id order by g.rating) a;
解决方案
无论你用的是什么数据库,order by
总是要放在最外层的。最后一句改为
and d.product_id=s.id) a
order by a.rating;
解决方案二:
首先谢谢你的解答;我这边还有一个问题就是如图 图片说明](http://img.ask.csdn.net/upload/201506/18/1434613155_160101.png) 没有评价的商品他的评分肯定是为空的,但是排序之后他就是最大的了,实际上应该是最小的
时间: 2024-10-31 17:02:25