mysql - 根据 table1 和 tb2.field 的 tb1.id 选择 count(tb2.field_name)
问题描述
这个问题以前可能有人问过,但我找不到。因为我无法正确询问所有情况。如果这是一个重复的问题,请原谅我。我有 2 个表: tb1 - 类别 tb2 - 任务 我想按每个类别选择所有任务和任务数量。
我所做的是这样的:
SELECT category_id, category_title,
(SELECT count(task_id) FROM tasks_of_app WHERE category_id ) AS counted_tasks
FROM categories_of_app
但我得到每个类别的所有任务的数量。
我不能使用 WHERE 因为没有输入参数。
拜托,伙计们帮忙或告诉读什么书才能做出这样的查询。
解决方案
如果有一个列category_id
引用tasks_of_app
该列category_id
,categories_of_app
那么您需要一个联接和聚合:
SELECT c.category_id, c.category_title, count(t.task_id) counted_tasks
FROM categories_of_app c LEFT JOIN tasks_of_app t
ON t.category_id = c.category_id
GROUP BY c.category_id, c.category_title
推荐阅读
- php - 如何使用 lat & long 登录用户并根据 Laravel 中的当前位置查找位置?
- sql-server - 过滤自由文本 (vchar) 列时出现 SQL-Server 连接问题
- gradle - 在使用 'into' 使用 Gradle 的 Zip 任务创建的 Zip 文件中包含依赖项(在 v4 之前它运行良好)
- visual-studio-code - ExtensionContext.globalState 是永久存储吗?
- android - 迁移到 AndroidX 后,启动时出现异常:java.lang.ClassNotFoundException:“找不到类 androidx.core.app.CoreComponentFactory”
- node.js - Connxion 无法连接到 mongodb atlas 服务器
- c# - 为什么在 EF Core 中没有一种简单的方法来定义多对多关系?
- sql - Where 子句 SQL 中的用例
- javascript - 如何根据其网址关闭歌剧中的标签
- java - 为什么这个文件上传线程(ServletFileUpload.parseRequest)被阻塞了?