sql >> データベース >  >> RDS >> Mysql

1052:フィールドリストの列'id'があいまいです

    SQLは、参照の前に完全なテーブル名を付けることにより、列の修飾をサポートします。

    SELECT tbl_names.id, tbl_section.id, name, section
      FROM tbl_names
      JOIN tbl_section ON tbl_section.id = tbl_names.id 
    

    ...またはテーブルエイリアス:

    SELECT n.id, s.id, n.name, s.section
      FROM tbl_names n
      JOIN tbl_section s ON s.id = n.id 
    

    テーブルエイリアスが推奨されるアプローチです。必要以上に入力するのはなぜですか?

    これらのクエリはなぜ異なって見えるのですか?

    次に、私の回答ではANSI-92 JOIN構文を使用しています(あなたはANSI-89です)。それらは同じように機能しますが、ANSI-89構文はOUTER結合(RIGHT、LEFT、FULL)をサポートしていません。 ANSI-89構文は非推奨と見なす必要があります。これを強化するために、ANSI-89構文に投票しないSOには多くの人がいます。 詳細については、この質問を参照してください



    1. MySQLフィールドの先頭と末尾の空白を削除するにはどうすればよいですか?

    2. postgresで自動インクリメントカウンターをリセットする

    3. Postgresを使用して複数のスキーマからすべてのレコードを選択(取得)します

    4. Oracleでの一括収集によるパフォーマンスの向上