繁体   English   中英

表别名+左联接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM