首页 > 解决方案 > SQL查询打印两个表中的两列,计数

问题描述

我有一张有食谱的桌子,一张有配料的桌子,还有一张连接它们的桌子。

如何进行查询以列出每个食谱以及每个食谱中的成分数量?

我尝试过使用 count 但我发现它很难工作,因为我们从两个表中获取数据并且必须打印两件事。提前致谢。

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

标签: mysqlsqljoingroup-bycount

解决方案


您的查询已经完成了一半。您只需要带上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

推荐阅读