Maison >base de données >tutoriel mysql >Comment corriger l'erreur SQL « Table/alias non unique : « utilisateur » ?
Comment résoudre l'erreur « Table/alias non unique : 'utilisateur' » dans SQL ?
Le code SQL que vous avez fourni donne l'erreur 1066 car la table 'user' est référencée deux fois sans alias. En SQL, lors de la jointure de tables, il est essentiel de donner aux tables des alias uniques si elles sont référencées plusieurs fois.
La structure de votre table montre que la table « utilisateur » contient des colonnes telles que « nom » et « id ». Vous avez rejoint la table 'article' avec la table 'user' pour récupérer les informations utilisateur basées sur 'author_id'. Cependant, vous avez également joint à gauche la table 'article' avec la table 'user', mais cette fois en fonction de 'modified_by'. Sans fournir d'alias pour la deuxième instance de la table 'user', la requête ne peut pas faire la différence entre les deux utilisations de 'user'.
Pour résoudre ce problème, vous devez donner à la deuxième instance de 'user' ' table un alias. Cela permettra de distinguer les deux instances et permettra à SQL d'identifier correctement les colonnes que vous souhaitez récupérer.
Voici le code modifié :
SELECT article.*, section.title, category.title, user.name, u2.name FROM article INNER JOIN section ON article.section_id = section.id INNER JOIN category ON article.category_id = category.id INNER JOIN user ON article.author_id = user.id LEFT JOIN user u2 ON article.modified_by = u2.id WHERE article.id = '1'
Dans ce code modifié, nous avons donné le deuxième instance de la table 'user', l'alias 'u2'. Cela permet à la requête de différencier les deux occurrences de la table 'user' et de récupérer correctement les données souhaitées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!