子查询返回的行数超过1-如何获取行的最后更新日期?

时间:2019-05-14 04:17:04

标签: php mysql sql database

我有一个带有设备ID以及上次更新日期和时间的表,我正在尝试进行MySQL查询以获取表上每个设备的最近一次更新,但是当我执行查询时,我出现以下错误:

  

子查询返回多于1行。

下面是我在PHP代码上使用的查询。

SELECT log_device_dt_lastupdate FROM tb_log_device 
WHERE device_id=(SELECT DISTINCT(device_id) 
FROM tb_log_device) ORDER BY log_device_dt_lastupdate 
DESC LIMIT 1

如果我使用GROUP_CONCAT,我只是从一台设备上获取信息。

我不想使用两个查询从表中获取此信息,是否有可能?也许通过制作JOIN

谢谢。

2 个答案:

答案 0 :(得分:0)

使用group bymax() aggregation

SELECT deviceid,max(log_device_dt_lastupdate) 
FROM tb_log_device 
group by deviceid

答案 1 :(得分:0)

使用where_in

SELECT log_device_dt_lastupdate FROM tb_log_device 
WHERE device_id IN 
(SELECT device_id 
FROM tb_log_device 
ORDER BY log_device_dt_lastupdate DESC)
相关问题