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

Je souhaite joindre deux colonnes dans la même table (catégories).Pourquoi sql # 1066 - Table/alias non unique: 'categories'?

+1

double possible de [Pourquoi est-ce ce code SQL donne erreur 1066 (Non tableau/alias unique: 'utilisateur')?] (https://stackoverflow.com/questions/1435177/pourquoi-fait-ce-sql-code-donne-erreur-1066-not-unique-table-alias-user) – philipxy

+0

Salut. C'est une faq. La prochaine fois commence avec google. – philipxy

Répondre

1

C'est parce que vous joindrez sur la même table, qui a besoin d'un alias de table afin d'éviter toute confusion, comme illustré ci-dessous

FROM 
    categories 
INNER JOIN 
    categories 

changement à ci-dessous (ici c1, c2 sont des alias de table)

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

et régler la clause SELECT en conséquence