因为房间里有两排
sales_order_products
是哪张桌子
order_id = 5
,遗嘱关系
sales_order
桌子,哪个
id = 5
JOIN
在你的情况下,你可以使用
DISTINCT
然后删除副本
join
CREATE TABLE sales_order(
ID INT,
total INT
);
INSERT INTO sales_order VALUES (1,10);
INSERT INTO sales_order VALUES (2,10);
INSERT INTO sales_order VALUES (3,10);
INSERT INTO sales_order VALUES (4,10);
INSERT INTO sales_order VALUES (5,20);
CREATE TABLE sales_order_products(
ID INT,
order_id INT,
quantity INT
);
INSERT INTO sales_order_products VALUES (1,1,1);
INSERT INTO sales_order_products VALUES (2,2,1);
INSERT INTO sales_order_products VALUES (3,3,1);
INSERT INTO sales_order_products VALUES (4,4,1);
INSERT INTO sales_order_products VALUES (5,5,1);
INSERT INTO sales_order_products VALUES (6,5,1);
查询1
:
SELECT
SUM(`sales_order`.`total`) as total,
SUM(sop.`quantity`) as total
FROM `sales_order`
LEFT JOIN (SELECT DISTINCT `quantity`,`order_id` FROM `sales_order_products`) sop
ON `sales_order`.`id` = sop.`order_id`
Results
| total | total |
|-------|-------|
| 60 | 5 |