SQL - Select 客户的订单通过添加不同的产品

SQL - Select customer's orders with by adding and distinct products

我有 3 张桌子:

客户:

CUSTOMER_ID | CUSTOMER_NAME

订单数:

ORDER_ID | CUSTOMER_ID | PRODUCT_ID | QUANTITY | PRICE

产品:

PRODUCT_ID | NAME | PRICE

我想列出客户订购的所有产品,但添加所有数量。

这是我想要的结果 :

CUSTOMER ID | PRODUCT_ID(1) | QUANTITIES (SUM)

CUSTOMER ID | PRODUCT_ID(2) | QUANTITIES (SUM)

CUSTOMER ID | PRODUCT_ID(3) | QUANTITIES (SUM)

CUSTOMER ID | PRODUCT_ID(4) | QUANTITIES (SUM)

这是我的实际要求,它只列出所有订单的所有信息(没有 SUM):

SELECT CUS.*, ORD.*, PRO.*

FROM `customers` CUS

LEFT JOIN `orders` ORD
ON ORD.customer_id = CUS.customer_id

LEFT JOIN `products` PRO
ON PRO.product_id = ORD.product_id 

WHERE CUS.customer_id = 4697

谢谢

你需要使用求和和分组依据,只选择你想要的列也会更容易。

select customer_id, product_id, sum(quantity)
FROM `customers` CUS

LEFT JOIN `orders` ORD
ON ORD.customer_id = CUS.customer_id

LEFT JOIN `products` PRO
ON PRO.product_id = ORD.product_id 

WHERE CUS.customer_id = 4697
group by customer_id, product_id
SELECT
    PRO.product_name,
    ROUND(SUM(ORD.price),2),
    ROUND(SUM(ORD.quantity), 2)

FROM ORDERS ORD

LEFT JOIN PRODUCTS PRO
ON PRO.product_id = ORD.product_id

WHERE ORD.customer_id = 4697

GROUP BY ORD.product_id

谢谢 ;)