谁能向我解释一下,为什么这个 mysql 查询会在“on 子句”中引发“未知列 'n.Id'”错误?这对我来说真的没有任何意义。
SELECT n.Id,
n.Name,
COUNT(*)-1 AS level,
seo.URLName
FROM NestedSetsTable AS n,
NestedSetsTable AS p
LEFT JOIN SEO__Table AS seo
ON seo.ElementId = n.Id
AND seo.ElementCat = 1
WHERE n.lft BETWEEN p.lft AND n.rgt
GROUP BY n.lft
ORDER BY n.lft
基本上,NestedSetsTable 有 Id、Name、lft、rgt 列,seo 表有一个 ElementId(包含类别的 id)、ElementCat(包含一个 int,在本例中为 1 为类别,2 为产品示例)、URLName(其中包含干净 url 的名称。例如 example.com/Categories/myCleanName )
谢谢
编辑:我解决了这个问题,但我问的原因是因为我想弄清楚为什么 n.Id 在 ON 子句中是未知的,因为它对我来说真的没有意义。