В настоящее время у меня есть оператор MySQL SELECT, который извлекает информацию из двух таблиц для отображения поля «Отправленные сообщения» для личных сообщений.
Я хотел бы знать, как я могу добавить COUNT в свой запрос, чтобы подсчитать количество «получателей» в одном потоке.
Вот основная суть структуры моей таблицы (ПРИМЕЧАНИЕ: реляционная связь между двумя таблицами - это «идентификатор сообщения» в pm-info и «id» в pm_data):
pm_info:
id message_id receiver_id is_read read_date
pm_data:
id date_sent title sender_id thread_id content
Вот мое утверждение SELECT:
SELECT pm_info.is_read, group_concat(DISTINCT receiver.usrFirst) as receiver_name,
pm_data.date_sent, pm_data.title, pm_data.thread_id, pm_data.id as data_id,
MAX(date_sent) AS thread_max_date_sent
FROM pm_info
INNER JOIN pm_data ON pm_info.message_id = pm_data.id
INNER JOIN tblUsers AS receiver ON pm_info.receiver_id = receiver.usrID
WHERE pm_data.sender_id = '$usrID'
GROUP BY pm_data.thread_id
ORDER BY thread_max_date_sent DESC
И выводит получателей так:
Message 1 - Recipients: John, David, Steve - thread_id = 1234
Message 2 - Recipients: Bill, David, John, Ed, Steve - thread_id = 1345
По сути, я хотел бы иметь возможность СЧИТАТЬ получателей, поэтому в приведенном выше примере «Сообщение 1» будет отображать три (3) получателя, а «Сообщение 2» будет отображать пять (5) получатели.
Таким образом, если у меня есть ветка / сообщение, отправленное 30 пользователям, будут напечатаны не все тридцать имен.
Спасибо!