我有一个表可以跟上房间中设备状态的变化,并且需要编写一个查询来列出自上次状态更改以来的时间量。该表由字段 new_state、prev_state、room、timestamp 组成。我最近的尝试是
SELECT a.room, a.prev_state, a.new_state,
timediff(a.timestamp, b.timestamp) from status_change as a
(SELECT b.timestamp from status_change as b
WHERE a.timestamp<b.timestamp and a.room=b.room
ORDER BY b.timestamp DESC LIMIT 1)
希望这能传达我想要实现的目标。
谢谢
最佳答案
SELECT t2.timestamp-t1.timestamp
FROM state_change AS t1
JOIN (SELECT * FROM state_change) AS t2
ON t1.new_state = t2.prev_state AND t1.timestamp < t2.timestamp
关于mysql - 相关子查询(在同一个表上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674777/