我有这个表产品
和购物车
我想使用此查询获取所有在购物车中销售的产品
SELECT products.name,sum(products.price) as price, count(*) as quantity
FROM carts
join products on carts.product_id=products.id
where status = 'sold'
但为什么我只得到一排?
答案 0 :(得分:1)
只返回一行,因为SELECT列表中有聚合表达式。
SUM(products.price)
COUNT(*)
缺少GROUP BY子句,这将导致所有行“折叠”为一行。与我们运行的结果类似
SELECT COUNT(1) FROM foo ;
我们回来了一行。
我怀疑你想在查询的末尾添加GROUP BY products.name
子句。
这会导致所有匹配值为products.name
的行折叠为一行,但我们会为products.name
的每个不同值返回一行。