2010-04-11 65 views
2

所以我寫了一個簡單的收件箱私人消息系統。使用MYSQL的收件箱功能

我的表模式如下:

  • MESSAGEID
  • 消息
  • 發件人ID
  • 接收機ID
  • 發送日期
  • 讀(0 =無,1 =是)

我能夠通過將他的用戶ID與receiverID相關來顯示用戶的消息。不過,我也想要將收件箱中發送的郵件顯示給用戶。

例如他的收件箱中應顯示:

達斯維達 - 3新消息
盧克 - 0 新消息(0,因爲無論我讀 所有的人還是我送他的消息 他沒有回覆)。

但我只能想出是

達斯維達 - 3新的消息。

我可以通過如何完成此SQL調用獲得任何幫助嗎?

編輯:要清除混亂

我既不盧克或者達斯。我收到了來自darth的3條新消息,並且我發送了一條消息給盧克。

編輯** 基本上我希望能夠使收件箱像短信應用程序一樣,在那裏你可以看到你的朋友發送的短信列表中的短信。

+0

我很困惑。在你的例子中,你是Vader還是Luke? – 2010-04-11 06:46:28

+0

我們可以看到您已經完成的查詢嗎?什麼決定了郵件是否已被回覆? – bigstylee 2010-04-11 06:48:02

+0

@Bigstylee好吧,如果一條消息已被回覆或沒有被回覆,那麼就沒有任何說明,只要它已被讀取或不被讀取。 @Clint我既不是兩個人,我收到了來自darth的3條新消息,並且我發送了一條消息給luke。 – 2010-04-11 06:54:11

回答

0
SELECT users.username, count(messageID) AS unread 
FROM users, messages 
WHERE messages.senderID=<USER ID> 
AND messages.receiverID=users.userID 
AND messages.read=0 

只是爲了確保我得到這個權利,這個查詢將顯示所有用戶我已經發出了消息,並計算還沒有被閱讀這些消息的數量。