DBAtlas · データベース運用アトラス

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) で曖昧さを減らす。

DBAtlas で開く →

同じデータベースの他の項目