select u.vip,ifnull(sum(o.order_price),0) as order_total from order_tb o right join uservip_tb u on o.user_id=u.user_id group by u.vip order by sum(o.order_price) desc
这道题没啥难的,主要是注:如果存在某一会员等级的用户没有下订单也需要输出该会员等级,订单总额记录为0, 需要用到ifnull函数。
其余就是right join了, 如果表链接反过来也可以let join。使用了 RIGHT JOIN 确保所有会员等级都被包含
这里排序那里可以使用order_total 别名。
sql
IFNULL(表达式, 替换值)
作用:
- 如果表达式为NULL,返回替换值
 - 如果表达式不为NULL,返回表达式本身的值
 

京公网安备 11010502036488号