DBAtlas · 数据库运维图谱

1052: Column 'x' in field list is ambiguous(字段列表中的列 'x' 不明确)

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 中打开 →

同一数据库的其他条目