尝试使用嵌套集模型。
检索单一路径,从'Pakken'开始,它的父母是'Heren',但由于这是分层数据,'Heren'可以拥有无限量的父母。
我坚持加入,给我这个错误
#1054 - Unknown column 'node.id' in 'on clause'
在此查询中,我尝试加入产品,其`products`.`category_id`
必须等于节点的选定id
。
SELECT *
FROM `categories` AS `node`,
`categories` AS `parent`
INNER JOIN `products` ON `node`.`id` = `products`.`category_id`
WHERE `node`.`lft` BETWEEN `parent`.`lft` AND `parent`.`rght`
AND `parent`.`id` = '1'
ORDER BY `node`.`lft`;
代码在没有INNER JOIN的情况下正常工作。
答案 0 :(得分:1)
通过更改查询中的小事来解决它,感谢peterm!
新查询:
SELECT `products`.*
FROM `categories` AS `node`
JOIN `categories` AS `parent`
INNER JOIN `products` ON `node`.`id` = `products`.`category_id`
WHERE `node`.`lft` BETWEEN `parent`.`lft` AND `parent`.`rght`
AND `parent`.`id` = '1'
ORDER BY `node`.`lft`;
使用jon
答案 1 :(得分:0)
因为您使用“逗号”: 你的第一个表是表“节点”。 你的第二个表是“父”和“产品”的连接。所以“ON”必须包含这两个表中的列而不是“node”。 如果你真的想使用“node.id = products.category_id”,那么必须把它放在WHERE子句中。