我有一个包含以下列的 cat
表:
cat_id | name | parent_id
1 cat1 1
2 subcat1 1
3 subcat1-subcat 2
此表有数千个类别,但这是一般结构。
当用户选择顶级类别时,我有一个查询来获取它的子类别:
SELECT * FROM cat WHERE parent = $id
我的问题是我需要知道这些子类别是否有自己的子类别。
我可以对结果进行循环并对返回的每个类别进行查询,但我希望有一种解决方案可以只使用一个查询,也许它需要一个子查询?
感谢您的帮助。
最佳答案
您可以使用子查询来检查是否有子节点:
select *
, case
when exists (select * from cat c2 where c2.parent_id = c1.cat_id) then 0
else 1
end as HasSubcategories
from cat c1
关于mysql - 查询以获取子类别并知道子类别是否有自己的子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023240/