好的,我有一张桌子
Tasks
--
TaskId (unique autoinc primary)
ChildOf (Contains task ID of parent, or 0 if top tier (no parent))
我需要编写一个查询,选择ChildOf = 0的所有记录……简单吧?
好的但是还需要返回另一个列,结果告诉每个任务有多少个孩子……
所以结果看起来像这样……
TaskID ... ChildOf ... countChildren
37 ...... 0 .... 3
42 ...... 0 .... 0
99 ...... 0 .... 1
etc....
我知道我需要的两个查询是这样的,但需要以某种方式将它们组合起来……
Select TaskId as ParentTaskId, ChildOf from Tasks where ChildOf = 0
和
Select count(TaskId) from Tasks where ChildOf = ParentTaskId
注意:只有2层..父母和孩子……没有孙子!所以希望这会让它变得有点复杂.
任何帮助是极大的赞赏.感谢目前为止所有的帮助!
最佳答案 这样的事情应该这样做:
SELECT TaskId as ParentTaskId, ChildOf ,
(SELECT count(t2.TaskId)
FROM Tasks t2
WHERE t2.ChildOf = t.TaskId) as CountChildren
FROM Tasks t
WHERE t.ChildOf = 0