Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用联接表中的值进行计算_Mysql_Sql - Fatal编程技术网

Mysql 使用联接表中的值进行计算

Mysql 使用联接表中的值进行计算,mysql,sql,Mysql,Sql,我有以下表格,我想计算总热量和价格 蛋糕: 配方: | 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 | S

我有以下表格,我想计算总热量和价格

蛋糕:

配方:

| 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 |
因此,预期结果将是
卡路里=>500
买入价=>22.72
卖出价=>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`.`components\u id
未知,我可以理解,但我不知道如何修复它。但这仍然给我留下了如何计算这些值的问题


我希望有人能帮我解决这个问题。

你能试试下面的问题吗:

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;

您可以尝试以下查询:

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;

您需要将
WHERE
语句中的字段包括在
SELECT
语句中。我猜您从未做过巧克力蛋糕。我估计售价应该是25.50,不是15.50你需要在
SELECT
语句中包含
WHERE
语句中的字段。我猜你从来没有做过巧克力蛋糕。我估计售价应该是25.50,而不是15.50。我不知道
SUM()这么容易。
不知道
SUM()这么容易。