sql 查询 统计每个会员各自订购产品的总数量 面试题 难住了

sql 查询 统计每个会员各自订购产品的总数量 面试题 难住了 呵呵
数据库中有会员表(user_id,user_name),订单信息表(order_id,order_amount,order_time),订单产品表(order_id,goods_id,goods_name,goods_number,price),
会员表与订单信息表用user_id作关联,订单信息表与订单产品表用order_id作关联,现在要生成一个统计表,统计每个会员各自订购产品的总数量
------解决方案--------------------
试试这个:
select user_id,
       user_name,
       
       (select SUM(goods_number) 
        from 订单信息表 b 
        inner join 订单产品表 c
                on b.order_id = c.order_id
        where a.user_id = b.user_id) '订购产品的总数量'
from 会员表 a

------解决方案--------------------
一般采用join的查询,会比采用子查询的,效率要高一点。

不过具体还得看,执行计划
------解决方案--------------------
,统计每个会员各自订购产品的总数量 ,还应该按照会员和产品分类统计吧

select A.name, C.goods_name,sum(C.Number) as Qty from ShopUser as A 
join ShopOrder B on A.id=B.userid                      
join ShopGoods C on B.id=C.orderid group by A.name,C.goods_name