思路分析

  • 首先,产品名称与订单号是1对多的关系,即一个产品可以对应多个订单;
  • 需要计算每项产品的总订单数,因此需要根据产品进行分组;
  • 之后使用统计函数中的count进行求和。所有的统计函数都会忽略NULL

第一种写法

select prod_name, count(order_num) orders
from OrderItems o right join Products p using(prod_id)
group by prod_name
order by prod_name;

第二种写法

select prod_name, count(order_num) orders
from Products p left join OrderItems o on p.prod_id=o.prod_id
group by prod_name
order by prod_name;