ホームページ >データベース >mysql チュートリアル >「一意ではないテーブル/エイリアス: 'user'」SQL エラーを修正する方法
SQL で「一意ではないテーブル/エイリアス: 'user'」エラーを解決するにはどうすればよいですか?
指定した SQL コードではエラー 1066 が発生しますこれは、「user」テーブルが別名なしで 2 回参照されているためです。 SQL では、テーブルを結合するときに、テーブルが複数回参照される場合は、テーブルに一意のエイリアスを与えることが重要です。
テーブルの構造を見ると、「user」テーブルに「name」や「id」などの列が含まれていることがわかります。 「article」テーブルと「user」テーブルを結合して、「author_id」に基づいてユーザー情報を取得しました。ただし、「article」テーブルと「user」テーブルを再度左結合していますが、今回は「modified_by」に基づいています。 「user」テーブルの 2 番目のインスタンスに別名を指定しないと、クエリでは「user」の 2 つの使用法を区別できません。
この問題を解決するには、「user」の 2 番目のインスタンスを指定する必要があります。 ' テーブルのエイリアス。これにより、2 つのインスタンスが区別され、SQL が取得する列を正しく識別できるようになります。
変更されたコードは次のとおりです。
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'
この変更されたコードでは、 「user」テーブルの 2 番目のインスタンスの別名は「u2」です。これにより、クエリで 2 つの「user」テーブルを区別し、必要なデータを正しく取得できるようになります。
以上が「一意ではないテーブル/エイリアス: 'user'」SQL エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。