mysql - 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
解决方案
您的查询已经完成了一半。您只需要带上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
推荐阅读
- php - 基于 mySQL 表名填充的下拉列表,并添加了按钮
- r - 如何使用 OpenSearch 从 R 中搜索 Internet 以查找包含指定术语的页面并将结果存储在数据表中
- php - 如何在使用PHPEXCEL插入时从数据库中的excel文件中插入日期时间(2019-03-01 24:30:15)
- bots - 如何让机器人识别何时提到角色,然后做出回应?
- javascript - 如何在javascript中更改函数中传递的变量的值?
- android - 如何在本机反应中将一列拆分为两个子行
- angular - 如何使用角度 2+ 中的单击事件动态创建按钮
- java - 用于在 UTF8 和 UTF16 偏移之间转换的 Java 代码(Java 字符串偏移到/来自 Python 3 字符串偏移)
- object-detection - 调整图像大小以进行对象检测
- mysql - 在 MYSQL 中搜索 2 列的字符串部分