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
谢谢 ;)
我有 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
谢谢 ;)