' Group by'计算与预期结果不符

时间:2017-10-07 05:22:30

标签: mysql sql

这是我的问题:

select product_name, (sum(item_price - discount_amount) * (quantity)) AS product_total
from products inner join order_items 
using(product_id) 
group by product_name

我的查询输出:

My query's output

预期产出:

Expected Output

我几乎要显示所有内容,但Gibson Les Paul product_total错误,最后一行没有显示带有ull的N product_total

1 个答案:

答案 0 :(得分:0)

内部联接意味着您只能看到具有product_name的order_items。使用外部联接查看没有product_name的order_items。此外,您的sum应该是最外层的功能。也许是这样的:

select product_name, sum((item_price - discount_amount) * (quantity)) AS product_total
from order_items left join products 
  on order_items.product_id=products.product_id
group by product_name 

如果需要,请查找内部和外部联接的说明,例如like this question

但是,仔细观察一下您的数据,联接类型可能不是null行的问题。底行只是所有其他行的总和,因此在group by子句之后添加with rollup将为您提供该行。