我正在创建一个电子商务网站,我category_id
在 URL 中有 ,并基于category_id
我将查询所有子孙(如果找到),因此我可以显示仅与那个相关的产品category_id
。这个查询真的很酷,因为它不关心它有多少父母......它只是寻找所有父母,直到它找不到更多。
我遇到的问题是我的查询只会获得父母和祖父母(如果找到),但我无法弄清楚如何让这个查询获得所有子行或孙子行(如果找到)。这个查询是从这里提取的,所以我没有写查询,而且我很难做出正确的改变……我昨天试了一整天。
编辑 此查询也不会获得所有相关的子孙(如果找到)。我想要所有孩子和孙子(如果找到)。
编辑 这是可以找到我的数据的SQL Fiddle 。
SELECT T2.category_id, T2.category_name
FROM (SELECT @r AS _id, (SELECT @r := parent
FROM categories
WHERE category_id = _id) AS parent
FROM (SELECT @r := 182)vars, categories h
WHERE @r <> 0) T1
JOIN categories T2
ON T1._id = T2.category_id
ORDER BY category_id ASC
这是我的表架构:
category_id | category_name | parent