左派加入破碎?

时间:2017-08-02 13:40:33

标签: mysql left-join

所以我有一个mysql查询,它曾经按预期工作,但现在我认为发生了一些事情,它似乎不再起作用了。

我拥有2张我想加入的牌桌。 "

  

用户

  

日志

我想要"用户"中所有用户ID(UID)的列表今天已登录的表格。所以我使用了这个查询。

SELECT users.UID 
FROM users 
LEFT JOIN logs 
  ON users.UID = logs.UID 
 AND DATE(logs.SCANTIME )=DATE(SYSDATE()) 
WHERE logs.UID is null

上面的查询过去有效,但现在返回的是一个不应该在那里的UID列表。

如果我今天查看日志,我可以看到多行,为了节省空间,我省略了除了一行之外的所有行。

 mysql> SELECT UID, SCANTIME FROM logs WHERE DATE(scantime)=DATE(SYSDATE());
    +------------+---------------------+
    | UID        | SCANTIME            |
    +------------+---------------------+
    .............
    | AA9B351B   | 2017-08-02 06:13:21 |
    .............
    +------------+---------------------+
    63 rows in set (0.00 sec)

所以这个家伙AA9B351B今天已经清楚登录了。然而,当我运行上面的查询时,他出现了。感谢您的回复

1 个答案:

答案 0 :(得分:0)

服务器时间可能已变得不正确,因此SYSDATE返回错误的值。检查系统时间并运行SQL查询,将SYSDATE函数替换为文字(仅测试)。此检查也与时区没有变化有关。如果服务器时间错误则重置。