ホームページ >データベース >mysql チュートリアル >MySQL エラー 1066: 重複したテーブル/エイリアス 'user' を解決する方法?

MySQL エラー 1066: 重複したテーブル/エイリアス 'user' を解決する方法?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-03 12:51:39672ブラウズ

How to Resolve MySQL Error 1066: Duplicated Table/Alias 'user'?

エラー 1066: 重複したテーブル/エイリアス 'User'

SQL クエリを実行すると、エラー 1066 (一意のテーブルではありません/エイリアス:「ユーザー」)。このエラーは、クエリ内の 'user' テーブルが別名なしで複数回参照されていることを示します。

問題:

次のテーブル構造を考えてください:

Article       Section      Category     User
id | title   id | title    id | title    id | name
------------ ------------ ------------ ------------
1  | Article 1 10 | Section 1 100 | Category 1 1   | Author

そしてこの SQL クエリ:

SELECT article.*, section.title, category.title, user.name, user.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 ON article.modified_by = user.id
WHERE article.id = '1'

これを実行するとクエリを実行すると、別名を指定せずに「user」テーブルが 2 回結合されるため、エラー 1066 が発生します。

解決策:

この問題を解決するには、一意の「user」テーブルの 2 番目のインスタンスのエイリアス (「u2」:

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'
など)

以上がMySQL エラー 1066: 重複したテーブル/エイリアス 'user' を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。