在這個應用程序,我需要做一個查詢似乎是不可能的(經過數小時的嘗試和嘗試)的工作。Mysql如何選擇SUM基於列其他表
雖然,我不得不承認,我對查詢有點生疏!
無論如何,讓我們假設有這3個表:
膳食
id name
-- ----
1 meal1
食品
id name kcal kj
-- ---- ---- --
1 food1 200 200
2 food2 300 300
Meal_food
m_id f_id percentage_food_in_meal
---- ---- ----
1 1 0.60
1 2 0.40
我想要選擇的是:一餐,與大卡,kj(和其他)屬於這種餐基於的百分比。
正如我試過了,我已經試過了,但我可以告訴你最近的,我可以得到:
SELECT
m.*,
SUM(f.kj), -- <- should be based on the percentage
SUM(f.kcal) -- <- should be based on the percentage
FROM
meal m,
meal_food mf,
food_nl f
WHERE
m.id = mf.meal_id
AND
f.id = mf.food_id
GROUP BY
m.id;
正如評論說:在基於百分比缺失。 嘗試內部連接,外部連接,交叉連接,子查詢,所以我想知道是否有可能。
希望我的問題關於我想要得到的是清楚的,如果不是,我會很樂意再試一次!
更新 例如作爲輸出:
id name kcal kj
-- ---- ---- ---
1 meal1 240 240
澄清: meal1由2食品(配料):
- 總膳食千卡== 60%千卡食物1 + 40 %kcal food2
- 總膳食kj == 60%kj food1 + 40%kj food2
我不知道你所說的「根據百分比」的意思。你能顯示一些示例輸出嗎? – shmosel
@shmosel我會更新 –