select userid from order a left join (select * from (select orderid,sum(price*count) as money from orderinfo group by orderid) order by money desc limit 10) b on a.id = b.orderid
结合 @如来神掌 的回答,针对一个用户有可能有多个订单的情况,我修改代码如下,感觉是可以了....
SELECT sum(b.total),userid FROM `order` AS a,
(SELECT SUM(price*count) AS total,orderid
FROM `orderinfo`
GROUP BY `orderid`) AS b
WHERE a.`id` = b.`orderid`
GROUP BY a.`userid`
ORDER BY sum(b.`total`) DESC
limit 10;