表结构(代表性)
ID NAME PARENT
--------------------
1 cat1 0
2 cat1 1
3 cat2 1
4 cat1 2
5 cat2 2
6 cat3 2
7 cat1 3
8 cat2 3
9 cat3 3
10 cat1 1
外部\子\类别\计数的外部表数据
id_parent name
-----------------------
2 a
2 b
2 c
3 a
3 b
3 c
类别可以有子类别。
SELECT t.name,t.id
FROM TABLE_NAME AS t
WHERE t.parent = SOME_ID
some_id=1给出了所有类别的名称、id和父id
我想得到的是除了t.id是子类别父级的名称之外,上面结果集中每一行的所有子类别的计数,并从另一个与父级具有相同t.id的表中获得类别的计数
预期结果
t.id t.name sub_category_count foreign_sub_category_count
2 cat1 3 3
3 cat2 3 3
10 cat1 0 0
2条答案
按热度按时间3b6akqbq1#
我怀疑您正在寻找一个递归查询—在mysql 8.0中可用:
这将向原始表中添加一列,其中包含当前行的直接和间接后代数。
fruv7luv2#
试试这个:
您可以在中更改父项id
where tab1.parent=1
你自己选择db fiddle示例