SQL запрос распечатать два столбца из двух таблиц с количеством - PullRequest
0 голосов
/ 09 января 2020

У меня есть таблица с рецептами и одна с ингредиентами, и одна, которая их связывает.

Как сделать запрос, в котором перечислены все рецепты и количество ингредиентов в каждом из них?

Я пытался использовать счетчик, но мне трудно работать, так как мы получаем данные из двух таблиц и должны напечатать две вещи. Заранее спасибо.

CREATE TABLE recipe(
id INTEGER,
title TEXT,
time INTEGER,
difficulty INTEGER
);

CREATE TABLE ingredient(
id INTEGER,
name TEXT
);

CREATE TABLE ingredient_recipe(
id_ingredient INTEGER,
id_recipe INTEGER
);

Редактировать: Я знаю, как просто распечатать все счета, но я не знаю, как это сделать:

SELECT COUNT(*)
FROM ingredient_recipe
GROUP BY id_recipe

Ответы [ 2 ]

1 голос
/ 09 января 2020

Что вам нужно: ВЫБЕРИТЕ СЧЕТЧИК (*) Кол-во, recipe.name в качестве рецепта FROM ингридиент_рецепт или рецепт внутреннего соединения на recipe.id = ir.id_recipe GROUP BY ir.id_recipe; Это очень простой запрос c sql. Вам необходимо прочитать mysql учебник.

1 голос
/ 09 января 2020

Ваш запрос на полпути. Вам просто нужно внести таблицу recipe с join:

SELECT ir.id_recipe, r.title, COUNT(*) cnt_ingredients
FROM ingredient_recipe ir
INNER JOIN recipe r ON r.id = ir.id_recipe
GROUP BY ir.id_recipe, r.title
...