【问题标题】:Connecting a table in mySQl- Warning: #1292 Truncated incorrect DOUBLE value在 mySQl 中连接表 - 警告:#1292 截断不正确的 DOUBLE 值
【发布时间】:2020-04-25 21:54:23
【问题描述】:

我正在尝试连接 mySQL 上的两个表,一个具有与特定人员关联的 ID,另一个具有已发送给网站上此人的消息。为了将特定消息与其发送给的特定人相关联,我正在尝试进行内部连接。但是,我收到警告:

#1292 截断不正确的 DOUBLE 值。

有人可以建议吗?

我的inner join如下:

SELECT gymafi_admin.id, gymafi_admin_tominbox.message 
FROM gymafi_admin 
INNER JOIN gymafi_admin_tominbox ON gymafi_admin.id = gymafi_admin_tominbox.message

提前非常感谢!

【问题讨论】:

  • 请提供样本数据和预期结果。
  • 两个表的架构是什么?

标签: mysql sql join inner-join


【解决方案1】:

这个连接条件看起来不对:

ON gymafi_admin.id = gymafi_admin_tominbox.message

据推测,左边的列是一个数字(表示用户的 id),而右边是一个字符串(消息)。这可以解释您收到的警告,因为 MySQL 会尝试将字符串 (message) 转换为整数值以便比较它们。

我确实怀疑右侧的列应该是别的东西,它存储了用户的id。假设此列名为 admin_id,您的查询将如下所示:

SELECT a.id, i.message 
FROM gymafi_admin a
INNER JOIN gymafi_admin_tominbox i ON a.id = i.admin_id

请注意,我添加了表别名以缩短它并使其更具可读性。

【讨论】:

  • @JessicaMart:如果不查看所有表中的实际样本数据以及所需的结果(正如您对问题的最初评论),我无法调试您的查询。我建议 accepting my answer 如果它解决了您的原始问题,然后是 asking a new question,其中包含所有必需的信息。
猜你喜欢
  • 2021-01-26
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多