DBAtlas · Database operations atlas

1052: Column 'x' in field list is ambiguous

MySQL

What does it mean?

A column with the same name exists in more than one table in the query, and because it is used without a table/alias prefix MySQL cannot tell which table it belongs to.

Why does it happen?

Both joined tables having a column with the same name (e.g. id in both); the column written unqualified (without a prefix) in SELECT, WHERE, ON, GROUP BY or ORDER BY.

How to fix it

Qualify every ambiguous column with the table name or alias: SELECT a.id, b.id FROM a JOIN b ON a.id = b.a_id; Give tables short aliases and prefix all conflicting columns. Reduce ambiguity in joins on common columns with USING(my_column).

Open in DBAtlas →

More from this engine