Mysql 从同一个表中选择计数
我有一个任务表,每个任务都有一个Mysql 从同一个表中选择计数,mysql,Mysql,我有一个任务表,每个任务都有一个task\u id列和parent\u id列。 我试图构建一个查询,返回每个任务id,该id显示在父id列中的次数。 我尝试了以下查询: SELECT task_id, parent_id, (SELECT COUNT( * ) FROM `tasks` WHERE parent_id = task_id) AS count_parents FROM tasks 这个查询不起作用。我希望这个问题足够清楚 看
task\u id
列和parent\u id
列。我试图构建一个查询,返回每个
任务id
,该id
显示在父id
列中的次数。我尝试了以下查询:
SELECT
task_id, parent_id,
(SELECT COUNT( * )
FROM `tasks`
WHERE parent_id = task_id) AS count_parents
FROM tasks
这个查询不起作用。我希望这个问题足够清楚 看起来你想要这个:
SELECT task_id,
parent_id,
COUNT(parent_id) AS count_parents
FROM tasks
GROUP BY task_id, parent_id
看起来你想要这个:
SELECT task_id,
parent_id,
COUNT(parent_id) AS count_parents
FROM tasks
GROUP BY task_id, parent_id
我想从你的问题
从你的问题中我想试试这个:
select task_id,parent_id, count(parent_id) as count_parents
from `tasks`
group by task_id,parent_id;
在这种情况下,您需要一个群组,希望它能有所帮助。尝试以下方法:
select task_id,parent_id, count(parent_id) as count_parents
from `tasks`
group by task_id,parent_id;
在这种情况下,您需要一个小组成员,希望能有所帮助。如果您想包括所有任务,无论它们是否为家长
select tasks.task_id,count(parent.parent_id)
from tasks
left join tasks parent on tasks.task_id=parent.parent_id
group by tasks.task_id;
如果您只希望任务是父任务,那么这很简单:
select parent_id,count(*)
from tasks
group by parent_id;
(后者可能需要一个
,其中parent_id不为null
或诸如此类,这取决于您如何表示没有父任务的任务)。如果您希望包括所有任务,无论它们是否为父任务
select tasks.task_id,count(parent.parent_id)
from tasks
left join tasks parent on tasks.task_id=parent.parent_id
group by tasks.task_id;
如果您只希望任务是父任务,那么这很简单:
select parent_id,count(*)
from tasks
group by parent_id;
(后者可能需要一个
,其中parent_id不为null
或诸如此类,这取决于您如何表示没有父任务的任务)。您的错误消息是什么?我怀疑您需要添加GROUPBY子句,但不确定。您的错误消息是什么?我怀疑您需要添加GROUPBY子句,但我不确定。