CMS 용 메시징 시스템을 구축 중이며 메시지 체인에서 읽지 않은 메시지 수를 얻는 방법을 찾을 수 없습니다.읽지 않은 메시지 수를 표시하는 SQL ... 읽지 않은 응답을 포함하여 ...
기본 메시지 또는 답장 메시지 중 읽지 않은 메시지인지 확인하는 방법이 필요합니다.
나는 필드가 "메시지"라는 테이블이 있습니다 ID를 활성은 [1,0], 제목, 메시지, 날짜, user_from, user_to, 응답, 볼, 제거를
때 메시지 읽기 I 사용자 아이디 조회 된 필드에 쉼표로 구분 된 것을 저장 : , 3,4,12,
다음가이 같은 보낸 사람의 ID를 찾아 볼 것 있는지 확인하는 방법은 다음과 같습니다
m.viewed LIKE '%,$user_id,%'
나는 단지 어떻게해야하는지 알아 낸다. 이 SQL select에 논리를 추가하면 상위 메시지를 읽지 않은 것으로 표시해야하는지 확인할 수 있습니다. 다음 SQL은 훌륭하게 작동하며 모든 메시지와 응답 횟수를 수집하여 datetime으로 주문합니다.
SELECT m.*, COUNT(*) AS num_replies, MAX(r.datetime) AS max_datetimeunread_replies
FROM directus_messages AS m
LEFT JOIN directus_messages as r
ON m.id = r.reply
WHERE m.active = '1'
AND m.removed NOT LIKE '%,$user_id,%'
GROUP BY m.id
HAVING m.reply = '0'
ORDER BY datetime DESC, max_datetime DESC
어떤 도움을 주시면 감사하겠습니다 ... 나는 내 머리를 감쌀 수 없습니다!
OK UPDATE, 당신은 단지 하나 개 때문에 응답의 수준 이상에 대한 필요성이 - Managing Hierarchical Data in MySQL가
--edit :
확인이 비슷한 문제 : http://stackoverflow.com/questions/4318010/print-hierachical-data-in-a-parent-child-form-unordered-list-를 php/4318846 # 4318846 –
측면 질문 : 'viewed'및 'removed'필드의 기간은 얼마입니까? 100 명이 넘는 사용자가 메시지를 볼 때 어떻게됩니까? 쉼표로 구분 된 필드를 사용하는 것보다 테이블을 표준화 해보십시오. –
또한이 질문 : http://stackoverflow.com/questions/5291054/hierarchical-sql-problem –