Я прошу прощения, если этот вопрос был задан аналогичным образом ранее. Я довольно новичок в SQL, и мне очень трудно найти решение моей проблемы. Очень растерян.
У меня сейчас три таблицы:
Шаблоны - | id | имя |
Пользователи - | id | полное имя |
История изменений - | id | id_user | id_template | last_edited_at
У меня есть таблица, заполненная шаблонами.
У меня есть отдельная таблица, заполненная пользователями, которые вносят изменения в эти шаблоны. Каждый раз, когда вносится изменение, в таблице журнала изменений создается запись.
Я пытаюсь создать запрос, основной целью которого является получение КАЖДОЙ записи из шаблонов, а также КОГДА она была недавно изменена и ПО КОГО.
Я пришел с этим запросом, который позволяет мне найти самое последнее изменение для определенного идентификатора шаблона.
SELECT changelogs.id_user, changelogs.updated_at, users.full_name
FROM changelogs
JOIN users
ON changelogs.id_user = users.id
WHERE changelogs.id_template = :templateId
ORDER BY changelogs.updated_at DESC
LIMIT 1
Я изначально пытался решить эту проблему, просматривая каждую запись шаблона и выполняя вышеуказанный запрос для каждого идентификатора записи, но это медленно и не работает. Я знаю, что должен быть способ сделать это в SQL, и я хотел посмотреть, решил ли кто-нибудь подобную проблему. Я не проектировал эту базу данных, извините, если она не оптимизирована.
Мой идеальный конечный результат - таблица, которая выглядит следующим образом:
| template.id | template.name | user.name | changelog.updated_at |
Большое спасибо заранее за любые рекомендации