我有Category表的结构:
-
id
-
Headers
-
is_active(0或1)
-
parent_id
Item表的结构:
-
id
-
Headers
-
is_active(0或1)
-
category_id
表通过一对多关系与category_id字段相关联 . 那些 . 1类可以有很多项 .
“类别”表中的两级层次结构 . 这定义了主要类别和子类别 . 类别是parent_id = NULL的记录 . 子类别,这些是parent_id =某个id的记录 .
一个Item可以属于主类别(其中parent_id = null)和子类别(child) . 项目可以是活动的而不是活动的(0或1) . 类别和子类别也可以是活动的而不是活动的 .
请告诉我 . 我无法进行查询以选择项目 . 我需要从Items表中选择状态为is_active = 1的项目,它们是:1)加入主类别,has_active = 1. 2)最困难的是:项目连接到子类别status is_active = 1,其父类别的状态为is_active = 1.这实际上是用sql完成的吗?我用查询
SELECT * FROM item LEFT JOIN categories
ON item.category_id = categories.id
WHERE item.is_active = 1 AND categories.is_active = 1 AND categories.parent_id IN
(SELECT id FROM categories WHERE parent_id IS NULL AND is_active = 1)
但它会给我一个空洞的结果
1 回答