2017-10-12 102 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子句相應

相關問題