类别表的结构:
身份证件
标题
父项id
项目表的结构:
身份证件
标题
\u是否处于活动状态(0)или 1)
类别\u id
表结构
表通过一对多关系与category\u id字段相关联。那些。1个类别可以有多个项目。
类别表中的两级层次结构。这定义了主要类别和子类别。类别是那些父项id=null的记录。以及子类别,这些记录中的父项=某个id。
一个项目可以同时属于主类别(其中父类别id=null)和子类别(子类别)。项可以是活动项,也可以是非活动项(0或1)。
您需要进行一个查询,并从category表中选择所有主要类别(其父类的id=null),这些类别具有活动项(is\u active=1),并且其子类别也具有活动项。i、 e如果子类别中的项处于活动状态,则不显示此类别。
我只能选择只包含活动项的主要类别:
SELECT categories.title, count(analyses.id) FROM items
INNER JOIN categories on items.category_id = categories.id
WHERE categories.parent_id IS NULL
AND categories.is_active = 1
GROUP BY analyses.category_id
ORDER BY analyses_categories.title
但与子类不能应付了,请告诉我谁有更多的经验。
1条答案
按热度按时间mqxuamgl1#
有点不清楚你想做什么
count
(仅与父级关联的活动项?),但我将使用exists
要找出哪些子级也包含活动项,请执行以下操作: