在这个应用程序,我需要做一个查询似乎是不可能的(经过数小时的尝试和尝试)的工作。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我会更新 –