У меня есть таблица журнала, в которой я хочу выбрать записи для определенной c группы записей, сгруппированных по неизвестному мне идентификатору.
См. Таблицу ниже, столбцов больше, но они не имеют отношения к вопросу.
-------------------------------------------------------
| id | details | deviceId | processId | timestamp |
-------------------------------------------------------
| 1 | startup | 753 | 538 | 1546346190 |
| 2 | processing | 753 | 538 | 1546346192 |
| 3 | logging | 753 | 538 | 1546346217 |
| 4 | done | 753 | 538 | 1546346220 |
| 5 | startup | 567 | 539 | 1590648690 |
| 6 | processing | 567 | 539 | 1590648692 |
| 7 | logging | 567 | 539 | 1590648717 |
| 8 | done | 567 | 539 | 1590648720 |
| 9 | startup | 753 | 540 | 1590655888 |
| 10 | processing | 753 | 540 | 1590655890 |
| 11 | logging | 753 | 540 | 1590655915 |
| 12 | email sent | 753 | 540 | 1590655918 |
| 13 | done | 753 | 540 | 1590655920 |
-------------------------------------------------------
Я хочу получить последние записи одного процесса для одного устройства
Когда я запрашиваю что-то вроде этого, я получаю все записи устройства:
SELECT *
FROM logtable
WHERE deviceId = 753
ORDER BY timestamp DESC
Как я могу получить записи с processId 540 в одном запросе, если я не знаю, что processId равен 540?
Я уже пробовал это с подзапросом:
SELECT *
FROM logtable
WHERE processId IN (
SELECT processId
FROM logtable
WHERE deviceId = 753
ORDER BY timestamp DESC
LIMIT 1
)
Но MariaDB не принимает LIMIT
в подзапросе