проблемы с операторами sql

#php #sql

#php #sql

Вопрос:

У меня есть 2 таблицы

 chat_rooms 
chat_name | chat_url | chat_id


chat_msgs
msg_chat_id | timestamp
  

Я пытаюсь отобразить это так :

 -------- chat rooms that were active last 10 minutes---------
chat_name | chat_url | count the messages 
  

Пожалуйста, помогите

Комментарии:

1. Пожалуйста, предоставьте образцы данных, желаемые результаты и тег для используемой вами базы данных.

2. ВЕБ-СЕРВЕР MySQL PHPMYADMIN

3. Вы можете отредактировать свой вопрос, чтобы добавить соответствующую информацию. Вы также можете помочь другим помочь вам, разместив используемый вами SQL-запрос, а также среду, в которой вы пытаетесь отобразить информацию (например, HTML, оболочку / терминал и т. Д.)

Ответ №1:

Слева присоедините сообщения к чатам по идентификатору чата и отфильтруйте за последние 10 минут с помощью timestampadd() . Затем группируйтесь по комнате чата, принимая количество временных меток.

 SELECT cr.chat_name,
       cr.chat_url,
       count(cm.timestamp) "count the messages"
       FROM chat_rooms cr
            LEFT JOIN chat_msgs cm
                      ON cm.msg_chat_id = cr.chat_id
                         AND cm.timestamp >= timestampadd(minute, -10, now())
                         AND cm.timestamp < now()
       GROUP BY cr.chat_name,
                cr.chat_url;