我正在嘗試構建一個內部郵件系統,用戶可以向一個或多個用戶發送/回覆郵件。我希望顯示收件箱像Gmail系統。原始消息將在表中列出。如果有與該消息相對應的答覆,答覆計數顯示在旁邊。如果消息或回覆中的任何一個未讀,我想要以粗體顯示。我有以下表結構。郵件系統查詢不起作用
msg_inbox表
message_id
message_subject
message_body
sender_id
recipient_id
read_status
message_date
marked_important
msg_reply表
reply_id
message_id
reply_subject
reply_body
reply_sender_id
reply_recipient_id
reply_read_status
reply_date
到目前爲止我下面的查詢,但似乎並沒有工作
SELECT
m.*,
COUNT(r.reply_id) replycount,
(SELECT
reply_read_status
FROM
sc_messages_reply
WHERE message_id = r.message_id
AND reply_recipient_id = r.reply_recipient_id
AND reply_read_status='0'
) AS reply_read_status,
r.reply_sender_id,
r.reply_date
FROM
sc_messages m
LEFT OUTER JOIN sc_messages_reply r
ON m.message_id = r.message_id
WHERE m.sender_id = '34'
OR m.recipient_id = '34'
OR r.reply_sender_id = '34'
OR r.reply_recipient_id = '34'
GROUP BY m.message_id
ORDER BY m.marked_important DESC,
m.message_date DESC,
r.reply_date DESC
我一定是什麼地方了在上面的查詢中是錯誤的,如果有人指出它會很好。
這裏是樣本數據
msg_inbox
insert into `msg_inbox`
(`message_id`, `message_subject`, `message_body`, `sender_id`,
`recipient_id`, `read_status`, `message_date`, `marked_important`)
values (1, 'This is test message',
'This is test message body apart from subject',
12, 34, 1, '2012-09-29 07:49:37', 1),
(2, 'This is yet another message',
'This is yet another subject', 13, 34, 1, '2012-09-29 07:51:00', 0);
msg_reply
insert into `msg_reply`
(`reply_id`, `message_id`, `reply_subject`, `reply_body`, `reply_sender_id`,
`reply_recipient_id`, `reply_read_status`, `reply_date`)
values (1, 2, 'Test reply', 'test body\r\n',
34, 13, 1, '2012-09-29 07:51:46'),
(2, 2, 'Reply of the reply\r\n', 'Message reply of the reply',
13, 34, 1, '2012-09-29 07:52:32'),
(4, 1, 'Re.This is test message',
'Naturally I took it upon myself to solve this problem for all of you :) I created this plugin to be as general purpose as possible. As a result it ended up being vastly more customizable than any other jQuery auto-complete plugin. Not only that, I am using actual jQuery. For some reason all the other "jQuery" plugins don't really take advantage of the radness that is jQuery. Consequently, my plugin ended up being',34,12,1,'2012-09-30 14:37:40'),(5,1,'Re.This is test message','Well its all good sir',12,34,0,'2012-09-30 15:07:38');
@MahmoudGamal,如預期 – WatsMyName
那好吧查詢不顯示結果,您能添加一些樣本數據和預期的結果。 –
@MahmoudGamal,唯一不工作的部分似乎是子查詢,可以說'message_id = 1',原來的消息被讀取所以'read_status = 1'這沒問題,但是對這個消息ID的回覆之一是我未讀,子查詢是我用於這一點,即返回null值,而不是0,即使有'message_id = 1'的未讀消息答覆 – WatsMyName