首页 > 解决方案 > 根据 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 因为没有输入参数。

拜托,伙计们帮忙或告诉读什么书才能做出这样的查询。

标签: mysqlselectmultipleselection

解决方案


如果有一个列category_id引用tasks_of_app该列category_idcategories_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

推荐阅读