#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;