gpt4 book ai didi

mysql - SQL Select * 和同表的另一个查询结果的计数

转载 作者:行者123 更新时间:2023-11-28 23:21:35 25 4
gpt4 key购买 nike

有一件事我需要帮助;

表格就像

ID, name, parent
1, ABC, -
2, DEF, 1
3, GHI, 1

我想在一个选择查询中从表中获取每一行的子项计数

select *, COUNT((SELECT ID FROM ... WHERE parent = this.ID)) from ...

这在 SQL 中可能吗?

结果应该是这样的

1, ABC, 2
2, DEF, 0
3, GHI, 0

最佳答案

与自身连接表。

SELECT t1.*, IFNULL(COUNT(t2.id), 0) AS childcount
FROM yourTable AS t1
LEFT JOIN yourTable AS t2 ON t2.parent = t1.id
GROUP BY t1.id

LEFT JOIN 是处理没有 child 的情况所必需的,因此您在结果中得到 0(INNER JOIN 将省略那些行)。

关于mysql - SQL Select * 和同表的另一个查询结果的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41383127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com