【发布时间】:2012-04-29 08:17:48
【问题描述】:
在过去的几个小时里,我一直被这个查询困扰,我非常需要有人帮我解决这个问题。我试图完成我的私人消息系统,但我迷失在数据库表中。我为系统创建了三个表,分别如下:
CONVERSATION(**conversation_id**, subject)
CONVERSATION_MEMBER(**conversation_id**, **user_id**, conversation_last_view, conversation_deleted)
CONVERSATION_MESSAGE(**message_id**, conversation_id, user_id, message_date, message_text)
好的,所以在我获取特定用户的所有对话的函数中,我正在获取主题、日期,最后我想向用户展示他/她正在与谁交谈。我写了以下查询:
SELECT
c.conversation_id,
c.conversation_subject,
MAX(cmes.message_date) AS conversation_last_reply,
FROM conversation c, conversation_member cmem, conversation_message cmes
WHERE c.conversation_id = cmes.conversation_id
AND c.conversation_id = cmem.conversation_id
AND cmem.user_id = {$_SESSION['user_id']}
AND cmem.conversation_deleted = 0
GROUP BY c.conversation_id
ORDER BY conversation_last_reply DESC
最后,我试图获取用户的名字和姓氏(对话中的其他用户),但我不知道如何做到这一点。我尝试创建另一个函数来获取对话 ID,同时遍历第一个查询的结果,并返回用户的名字和姓氏,但没有成功。
顺便说一句,对于用户,我还有另一张桌子......我想我不必告诉你。好的,谢谢。
【问题讨论】:
-
您实际上并没有从 conversation_member 中选择任何内容
-
你想说什么?我不知道我将如何选择任何东西,因为我正在做 cmem.user_id = sessionID。您想就您的答案多说一些吗?
-
添加了正确答案,希望对您有所帮助