Как сделать запрос для подсчета кол-ва всех новых комментариев во всех темах для пользователя с учетом даты последнего просмотра темы пользователем?

Есть таблица с темами обсуждения topics
id | title
есть таблица с комментариями к темам comments
id | topic_id | text | date_added
есть таблица с датой последнего просмотра темы пользователем topics_views:
id | user_id | topic_id | date_last_view
Как мне правильно сделать mysql-запрос, чтобы получить количество новых комментариев во всех темах для конкретного пользователя, учитывая что какие-то темы пользователь мог еще вообще не смотреть и записи в topics_views нет?
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ответы на вопрос 1
idShura
@idShura
Так?
select t.id, 
       t.title, 
       count(*) count_comments 
  from topics t
       left join comments c on c.topic_id = t.id
       left join topics_views v on v.topic_id = t.id
  where (v.user_id = ?
    and c.date_added > v.date_last_view) or v.date_last_view is null
  group by t.id, 
           t.title
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы