我有以下表格,我想计算卡路里和价格的总和。
蛋糕:
| id | cake | description |
| 1 | chocolate | |
配方:
| id | cake_id | ingredient_id |
| 1 | 1 | 1 |
| 2 | 1 | 2 |
成分:
| id | ingredient | calories | buy_price | sell_price |
| 1 | Chocolate | 200 | 12.22 | 14.00 |
| 2 | Sugar | 300 | 10.50 | 11.50 |
因此预期结果为calories => 500
,buy_price => 22.72
和sell_price => 15.50
我已经尝试了以下查询,但这不起作用。
SELECT `c`.`id`, `cake`, `description`
FROM `cakes` `c`
JOIN `recipes` `r`
ON `c`.`id` = `r`.`cakes_id`
CROSS JOIN (
SELECT `calories`, `buy_price`, `sell_price`
FROM `ingredients` `i`
WHERE `i`.`id` = `r`.`ingredients_id`
) `ingredients`
它给我一个r`.`ingredients_id
未知的错误,我可以理解,但我不知道如何解决它。但这仍然让我想到如何计算价值。
我希望有人可以帮我解决这个问题。
答案 0 :(得分:2)
您可以尝试以下查询:
SELECT c.id, SUM(i.calories), SUM(i.buy_price), SUM(i.sell_price)
FROM cake c
JOIN recipe r ON c.id = r.cake_id
JOIN ingredients i ON r.ingredient_id = i.id
GROUP BY c.id;