列出所有订单中订购少于500种产品的客户的客户名称和订购的产品总数

时间:2020-02-25 19:36:32

标签: mysql sql left-join

我加入了三个表,因为在客户和订单明细表中没有共同的记录。我没有得到结果,我该怎么办?

orders tablecustomerstableorderstable 这是我的代码 选择不同的c.customername,sum(d.quantityOrdered)作为总数量 从订单o 在o.orderNumber = c.customerNumber上左加入客户c 左连接顺序详细信息d在o.ordernumber = d.ordernumber 按c.customerNumber分组

运行查询的结果: The result when I run the query

1 个答案:

答案 0 :(得分:1)

您需要从此更改条件:

on o.ordernumber = o.ordernumber

对此:

on o.ordernumber = d.ordernumber

还需要更改此内容:

o.orderNumber = c.customerNumber

对此:

o.customerNumber = c.customerNumber

另一件事:您应该将餐桌订单加入餐桌客户,而不要反过来。这意味着您需要从customers中进行选择,然后离开联接表orders,然后在orderdetails上离开联接orders

select distinct c.customername, sum(d.quantityOrdered) as totalquantity
from customers c 
left join orders o on c.customerNumber = o.customerNumber
left join orderdetails d on o.ordernumber = d.ordernumber
group by c.customerNumber
having sum(d.quantityOrdered)<=500

感谢埃里克!

除此之外,请同时检查您的客户加入。