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) 减少歧义。
同一数据库的其他条目
- 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(列 'x' 不能为 null)
- 1292Incorrect datetime value / truncated incorrect value(日期时间值不正确 / 截断了不正确的值)
- 1406Data too long for column(列的数据过长)