我有一个查询

SELECT SUM(product.price)
FROM cart, product
WHERE cart.idUser = :idUser AND cart.idProduct = product.id

如果某人以一个订单购买了2个相同的product,则此查询的总和仅为price的1倍。 例如:订购的3个相同product= 3 * 10 $,查询仅返回10 $

如果有人购买了2种不同的product,则查询效果很好。 例如:2个不同的商品= 1 * 5 $ AND 1 * 10 $,查询返回15 $

我有这些表:

  1. 用户

  2. 带有列的订单:id,id用户,值

  3. 带列的购物车:id用户,idproduct,数量

  4. 带列的product:id,名称,price

分析解答

price乘数量

SELECT SUM(quantity * product.price)
FROM cart c
JOIN product p ON c.idProduct = p.id
WHERE cart.idUser = :idUser 

并在上述查询中使用现代JOIN