ホームページ >データベース >mysql チュートリアル >あいまいな SQL 列参照を解決する方法: 'id' 列の競合?
あいまいな SQL 列参照の処理: "id" 列の例
SQL クエリを実行すると、特に一般的な "id" 列を処理する場合に、イライラする「あいまいな列参照」エラーが発生することがあります。これは通常、クエリに同じ列名を共有する複数のテーブルまたはエイリアスが含まれる場合に発生します。
よくある原因は、同じ列名を持つテーブルを結合することです。 例:
<code class="language-sql">SELECT (id, name) FROM v_groups vg INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id WHERE p2vg.people_id = 0;</code>
ここでは、v_groups
(vg
というエイリアス) と people2v_groups
(p2vg
というエイリアス) の両方に「id」列が含まれています。 データベースはどの "id" を選択するかを決定できず、あいまいさエラーが発生します。
解決策は簡単です。テーブルまたはエイリアスで列名を明示的に修飾します。 この場合、v_groups
テーブルから「id」を選択するには:
<code class="language-sql">SELECT (vg.id, name) FROM v_groups vg INNER JOIN people2v_groups p2vg ON vg.id = p2vg.v_group_id WHERE p2vg.people_id = 0;</code>
この明確な仕様によりあいまいさがなくなり、クエリを正しく実行できるようになります。
以上があいまいな SQL 列参照を解決する方法: 'id' 列の競合?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。