Maison >base de données >tutoriel mysql >Comment corriger l'erreur SQL « Table/alias non unique : « utilisateur » ?

Comment corriger l'erreur SQL « Table/alias non unique : « utilisateur » ?

DDD
DDDoriginal
2024-12-31 15:02:11803parcourir

How to Fix the

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn