我有一个带有设备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
谢谢。
发布于 2019-05-13 20:20:27
使用group by
和max()
aggregation
SELECT deviceid,max(log_device_dt_lastupdate)
FROM tb_log_device
group by deviceid
发布于 2019-05-13 20:31:04
使用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)
https://stackoverflow.com/questions/56122944
复制