ホームページ >データベース >mysql チュートリアル >「一意ではないテーブル/エイリアス: 'user'」SQL エラーを修正する方法

「一意ではないテーブル/エイリアス: 'user'」SQL エラーを修正する方法

DDD
DDDオリジナル
2024-12-31 15:02:11803ブラウズ

How to Fix the

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 サイトの他の関連記事を参照してください。

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