[英]Table alias + left join
所以,我正在尝试实现嵌套集合模型,我有以下查询
SELECT
n.CategoryID,
CategoriesI18n.CategoryName,
COUNT(*)-1 AS level FROM Categories AS n,
Categories AS p LEFT JOIN CategoriesI18n ON (
n.CategoryID=CategoriesI18n.CategoryID AND CategoriesI18n.Locale="en-US"
) WHERE n.lft BETWEEN p.lft AND p.rgt GROUP BY n.lft ORDER BY n.lft;
当我选择树时,我必须加入CategoriesI18n表,该表是当前类别的多语言行。 但是我得到这个错误
Unknown column 'n.CategoryID' in 'on clause'
而且我不知道为什么。 也许Categories AS p会覆盖第一个别名?
没关系,我想通了。 不得不做嵌套选择。
SELECT n.CategoryID, n.CategoryName, COUNT(*)-1 AS level
FROM (
SELECT Categories.CategoryID AS CategoryID, Categories.lft AS lft, Categories.rgt AS rgt, CategoriesI18n.CategoryName AS CategoryName FROM Categories LEFT JOIN CategoriesI18n ON (Categories.CategoryID=CategoriesI18n.CategoryID AND CategoriesI18n.Locale="bg-BG")
) AS n, Categories AS p
WHERE n.lft BETWEEN p.lft AND p.rgt GROUP BY n.lft ORDER BY n.lft;
'类别AS p左联接类别I18n',联接类别的别名为'p',而不是'n'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.