我一直在读这篇文章Creating a threaded private messaging system like facebook and gmail
它很好地解释了一切,但查询对我不起作用。我在第 1 行收到错误,其中显示“top 1”。 :(
以下是我想要达到的场景:
有 5 个人正在与 member1 交谈。成员 1 和其他 5 名成员有线程,因此总共有 5 个线程,因为有 5 个对话。我需要从 5 个线程中获取最新回复以及留下最后回复的人的用户名。
打开消息后,显示回复。
我猜我正在阅读的这篇文章是高效的,并且可以很好地处理成千上万的线程/回复。如果速度很慢,请告诉我是否有人可以向我指出一篇正确执行此操作的文章。我不太擅长MYSQL,还在学习中。
我正在使用此表设置
最佳答案
TOP
是 Transact-SQL 语法,例如适用于 MS SQL Server 和 Sybase。 MySQL 中的等效语法是 LIMIT
(位于 SELECT
命令的末尾):
select
M.message_id
, M.sent_datetime
, M.title
, M.message_text
, S.user_id
, S.user_name
-- and anything else you want...
from MESSAGE M inner join USER S
on M.sender_user_id = U.user_id
where M.reply_to_message_id = @ThreadRootMessageID
order by
M.sent_datetime desc
limit 1
关于php - 线程消息系统的查询不起作用(基于其他成员的帖子),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11376574/