我有两张table:
Products(..., category_id)
Categories(id, name, level_1_parent_id, level_2_parent_id)
``` `category_id` 是的外键 `Categories(id)` 如果是一级分类的话 `level_1_parent_id` 为空,
如果是二级分类 `level_2_parent_id` 为空, `level_1_parent_id` 已设置,
如果第三级都设置了。
我在挑选这样的产品
SELECT *
FROM Products
WHERE category_id = ${category_id}
我需要实现的是:从子类别中选择产品(如果是第一级或第二级类别)。
例如,如果我从类别中选择 `id == 1` (这是第一级id)我想选择具有 `category_id` 等于 `1` 以及其他具有 `level_1_parent_id == 1` 二级分类也一样。
有可能吗?
2条答案
按热度按时间brccelvz1#
通过先将表连接到表本身,然后获取与找到的每个类别相关联的产品,可以获得类别列表。请注意,对于from和join子句中的每个表,都使用了别名。
mw3dktmi2#
我们可以在这里使用嵌套查询。
从category\u id=${category\u id}或
中的类别\u id(从级别\u 1\u父级\u id=${category\u id}或级别\u 2\u父级\u id=${category\u id}的类别中选择不同的id)