内连接两张表报错#1292:截断不正确的DOUBLE值,求解决
问题解决:MySQL 1292 截断错误修复
你的错误根源有两个:
- 类型不匹配导致的比较错误:
enlistments.user_id是整数类型,users.name是字符串类型,MySQL尝试将字符串转换为整数进行比较时,遇到无法转换的内容就会抛出#1292 Truncated incorrect DOUBLE value警告。 - JOIN逻辑错误:
user_id的作用是关联用户表的主键ID,而非直接关联用户名,你搞错了关联字段。
结合常规数据库设计(对应你提供的表结构),users表存在主键字段(比如id),这个字段才是和enlistments.user_id对应的关联字段。修正后的SQL语句如下:
SELECT enlistments.round_id, users.name FROM enlistments INNER JOIN users ON enlistments.user_id = users.id -- 改为关联users表的主键ID WHERE enlistments.activity_id = 1;
如果你的users表主键字段不是id,替换为实际的主键字段名即可,只要保证两边字段类型一致(均为整数类型),就能解决类型截断问题,同时得到正确的关联结果。
内容的提问来源于stack exchange,提问作者user20051524
相关产品推荐
相关产品推荐

