1052: Column 'x' in field list is ambiguous(フィールドリストの列が曖昧)
MySQL意味
クエリ内の複数のテーブルに同じ名前の列があり、テーブル/別名の接頭辞なしで使われているため、MySQL はどのテーブルに属するか判断できない。
原因
結合された両方のテーブルに同じ名前の列がある (例: 両方に id)、その列が SELECT、WHERE、ON、GROUP BY、ORDER BY で修飾なし (接頭辞なし) で記述されている。
対処方法
曖昧な列はすべてテーブル名または別名で修飾する: SELECT a.id, b.id FROM a JOIN b ON a.id = b.a_id; テーブルに短い別名を付け、競合するすべての列に接頭辞を付ける。共通列での結合では USING(my_column) で曖昧さを減らす。
同じデータベースの他の項目
- 1366Incorrect string/integer value for column(列に対する文字列/整数値が不正)
- 1044Access denied for user to database(データベースへのアクセス拒否)
- 1264Out of range value for column(列の範囲外の値)
- 1136Column count doesn't match value count(列数と値の数が一致しない)
- 1048Column 'x' cannot be null(列は NULL にできない)
- 1292Incorrect datetime value / truncated incorrect value(日時の値が不正 / 不正な値の切詰め)
- 1406Data too long for column(列に対してデータが長すぎる)