1

task_id各タスクの列と列を持つタスク テーブルがありparent_idます。これが親列に表示される回数
ごとに返すクエリを作成しようとしています。 私はこのクエリを試しました: task_ididid

SELECT
     task_id, parent_id, 
     (SELECT COUNT( * ) 
      FROM  `tasks` 
      WHERE parent_id = task_id) AS count_parents 
FROM tasks

このクエリは機能しませんでした。質問が十分に明確であることを願っています。

4

4 に答える 4

5

親であるかどうかに関係なく、すべてのタスクを含める場合は、

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;

where parent_id is not null(後者は、親を持たないタスクをどのように表現するかに応じて、おそらくまたはそのようなものを必要とします)。

于 2013-01-24T22:29:24.007 に答える
1

これを試して:

select task_id,parent_id, count(parent_id) as count_parents 
from `tasks` 
group by task_id,parent_id;

この場合、グループ化が必要です。お役に立てば幸いです。

于 2013-01-24T22:28:29.577 に答える
1

これが欲しいようです:

SELECT task_id, 
  parent_id, 
  COUNT(parent_id) AS count_parents
FROM tasks
GROUP BY task_id, parent_id
于 2013-01-24T22:26:28.160 に答える
0
SELECT t2.task_id, t2.parent_id, 
     (SELECT COUNT( * ) FROM  `tasks` t1 
         WHERE t1.parent_id = t2.task_id) AS count_parents 
 FROM tasks t2

ご質問から思うのですが

于 2013-01-24T22:27:15.717 に答える