我正在爲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