Возможно, я хочу невозможного, но будем надеяться, что это возможно.
Итак, я хочу получить все новые комментарии от даты последнего комментария пользователя.
Я не думаю, что многоНеобходимы детали sql.
База данных форума для создания темы форума (id, user_id, title, content, date)
Комментарийбаза данных (id, user_id (пользователь, который комментирует), forum_id (какой форум он комментирует ... равно id в базе данных форума), дата)
Любая помощь будет принята с благодарностью.
Например: Комментарий db:
id user_id forum_id date
1 1 1 2018-12-16 14:00:00
2 2 1 2018-12-16 14:50:00
3 1 1 2018-12-16 15:35:00
4 5 1 2018-12-16 16:50:00
5 2 1 2018-12-16 17:50:00
Ожидаемый результат: Допустим, мы хотим получить все новые комментарии от последнего комментария пользователя 1, поэтому результатом должны быть id 4 и id 5,потому что они являются более новыми комментариями к user_id 1.
Другой пример:
id user_id forum_id date
1 1 2 2018-12-16 18:10:00
2 3 2 2018-12-16 19:25:00
3 1 1 2018-12-17 10:00:00
Ожидаемый результат: Нам все еще нужны все новые комментарии от пользователя 1. Результатом должен быть идентификатор 2, потому что этоновее, чем его комментарий на forum_id 2.
Ответ Гордона отлично подходит для решения первой проблемы.Пример с этим:
select c.*
from comments c
where c.datetime > (select max(c2.datetime)
from comments c2
where c2.user_id = ?
);
Но это не решает другую проблему.Если у пользователя есть последний комментарий в таблице комментариев, то этот запрос не даст никаких результатов.Но может случиться так, что у данного пользователя есть комментарии и в других темах форума, которые, возможно, имеют более новые ответы.