2017-10-12 89 views
-1
SELECT 
    categories.id, categories.name 
AS 
    parentName 
FROM 
    categories 
INNER JOIN 
    categories 
ON 
    categories.parent = categories.id 
ORDER BY 
    id 
DESC 

我想在同一个表(类别)内部连接两列。为什么这个sql#1066 - 不是唯一的表/别名:'categories'?

+1

的可能的复制[为什么这个SQL代码给错误1066(不是唯一的表/别名:“用户”)?(https://stackoverflow.com/questions/1435177/why-this-this-sql-code-give-error-1066-not-unique-table-alias-user) – philipxy

+0

嗨。这是一个常见问题。下次开始使用谷歌。 – philipxy

回答

1

那是因为要加入同一个表,需要以一个表的别名,以避免混淆,如下图所示

FROM 
    categories 
INNER JOIN 
    categories 

将其更改为以下(这里C1,C2是表的别名)

FROM 
    categories c1 
INNER JOIN 
    categories c2 
ON 
    c1.parent = c2.id 

和调整SELECT子句相应

相关问题