我正在为CMS构建消息传递系统,并且无法找到获取消息链中未读消息数量的方法。SQL显示未读消息的数量...包括未读回复
我需要一种方法来确定主消息或它的任何回复消息是否未读。
我有一个所谓的 “信息” 表具有以下字段: ID,活性[1,0],主题,消息,日期时间,user_from,user_to,回复,查看,删除
当消息读我存储在观看现场用户ID逗号分隔: ,3,4,12,
然后找出它是否看到我找发件人ID是这样的:
m.viewed LIKE '%,$user_id,%'
我只是想出如何克将该逻辑转换为此SQL选择,以便我可以查看是否应将父消息标记为未读。以下SQL可以很好地工作并抓取所有消息和回复的数量,并按日期时间对它们进行排序。
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
任何帮助将不胜感激......我不能包围我的头!
检查这个类似的问题:http://stackoverflow.com/questions/4318010/print-hierachical-data-in-a-parent-child-form-unordered-list- php/4318846#4318846 – 2011-03-23 07:59:36
旁边的问题:“查看”和“删除”字段有多长?当超过100个用户查看消息时会发生什么?你应该尝试使用逗号分隔的字段来标准化表格。 – 2011-03-23 08:01:31
另外这个问题:http://stackoverflow.com/questions/5291054/hierarchical-sql-problem – 2011-03-23 08:10:49