MYSQL - 从连接中选择最新行

时间:2017-07-21 12:15:30

标签: mysql

我正在尝试进行常规连接,但是使用where子句从history_items表中选择最新的条目。

'wb'

我选择Max(i.timestamp) - 这仍然没有返回history_items表中的最新条目。

2 个答案:

答案 0 :(得分:1)

我认为你的问题在这里:

WHERE  i.timestamp = (SELECT Max(i.timestamp)
              FROM   history_items)

i不应该在那里,它应该是Max(timestamp)而不是Max(i.timestamp)

Else Mysql将真正选择i.timestamp行的值。因此,如果您的时间戳为1,则会对此进行评估:

WHERE 1 =(SELECT Max(1) FROM hsitory_items)

基本上将是

WHERE i.timestamp = i.timestamp

我打赌你现在明白了。这就是返回所有行的原因。

答案 1 :(得分:0)

由于您总是按timestamp排序ORDER BY h.timestamp DESC,因此您实际上根本不需要以下WHERE条件。另外,下面指出的代码中的子查询错误地引用了列,如其他答案中已经提到的那样

WHERE  i.timestamp = (SELECT Max(i.timestamp)
                  FROM   history_items)