Работа с этим приложением, где мне нужно сделать запрос, который кажется невозможным (после нескольких часов пытается и пытается).Mysql как выбрать СУММ на основе другой таблицы таблицы
Хотя, я должен признать, я немного ржавый по запросам!
Во всяком случае, предположим, есть эти 3 таблицы:
Meal
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
То, что я пытаюсь выбрать, - это еда, с kcal, 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% ккал food1 + 40 % ккал пища2
- общая еда kj == 60% kj еда1 + 40% kj еда2
Я не уверен, что вы подразумеваете под «основана на проценте». Не могли бы вы показать некоторый образец вывода? – shmosel
@shmosel Я обновлю –