我有一个带有设备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
?
谢谢。
答案 0 :(得分:0)
使用group by
和max()
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)