【问题标题】:MySQL database query returns empty resultMySQL 数据库查询返回空结果
【发布时间】:2012-10-21 22:48:33
【问题描述】:

我正在进行数据迁移,并通过一次连接获得简单查询的空结果。以下是查询

Select * from users u INNER JOIN temp_users tu ON tu.uid = u.uid

两个表中有数百条具有相同uid的记录,但此查询仅返回一条记录。

以下是表格的结构

users table
uid:  varchar(50)   utf8_general_ci         Yes     NULL 

temp_users table
uid: varchar(50)    utf8_general_ci         Yes     NULL

【问题讨论】:

  • 可能你只有一个匹配的记录。
  • 尝试左连接而不是内连接
  • 如果您确定应该有匹配项,请从您的表中发布一些数据...
  • 是的。从您认为应该加入但未加入的每个表中发布至少一行的数据。
  • 我怀疑你在其他地方有问题......不是查询。如果两个表中确实有一些具有相同 id 的行,则必须得到结果

标签: mysql sql select join


【解决方案1】:

试试这个..

Select * from users u INNER JOIN temp_users tu ON trim(upper(tu.uid)) = trim(upper(u.uid));

可能没有匹配的 id b/w 表格.. 确认使用..

Select u.id,tu.id from users u LEFT JOIN temp_users tu ON trim(upper(tu.uid)) = trim(upper(u.uid));

【讨论】:

  • 左连接正在给出结果。这意味着它们不匹配,但是当我在 users 表上搜索它们时它存在。
  • @user1791096:问题是 temp_users 表中没有相同的 uid 记录
  • 我通过在 temp_users 表中搜索记录来检查它。它们在那里,但是当我使用 JOIN 时,我没有显示结果。甚至子查询也没有给出结果。我该怎么办 ??? mysql我也重启过很多次了,还是不行。
  • 我尝试匹配的用户 ID 采用以下格式:66b69e14-5452-4f40-8fef-ffff9245da7e。
  • 无论如何,根据给定的示例,它们应该匹配.. OP 必须从表中发布一些数据。