Column ‘*’ in on clause is ambiguousのエラーとなる原因

スポンサーリンク

Column ‘*’ in on clause is ambiguousエラー

mysqlでクエリを実行するとこのエラーが出ることがあります。主に複数テーブルをjoinしている場合に起こります。

クエリの中で、どのテーブルのカラムか指定していないことが原因です。

例えば、下のようなクエリでエラーが再現できます。

SELECT
*
FROM table1
INNER JOIN table2 ON table1.id = id

JOINの条件に table1.id = id を指定していますが、idだけではどのテーブルのidなのかが判断できないのでエラーになります。

よって下のようにテーブル名を指定してやれば普通に解消されます。

SELECT
*
FROM table1
INNER JOIN table2 ON table1.id = table2.id