mysql 单表子查询_mysql – 单表上的子查询

好的,我有一张桌子

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

标签:mysql,sql,hierarchical-data,subquery

来源: https://codeday.me/bug/20190704/1380342.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值