2012-07-07 31 views
0

我一直在阅读这篇文章Creating a threaded private messaging system like facebook and gmail查询的螺纹信息系统不能正常工作(根据职位由另一成员)

这说明了一切得非常好,但是查询并不为我工作。我在第1行出现错误,提示“top 1”。 :(

下面是我想达到的场景:

  1. 5人都在谈论的member1部件1和其他5名成员拥有的线程,所以这是5个线程在总因为有。 5个对话。我需要获取来自各5个线程的最新答复,并留下最后回复的人的用户名。

  2. 一旦消息被打开,显示的答复。

我在猜测我正在阅读的文章是有效的,并且可以很好地处理数千和数十万个线索/回复。如果速度缓慢,请告诉我是否有人可以给我一篇正确的文章。我对MYSQL不太好,还在学习。

我用这台设置

enter image description here

回答

1

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 
+0

完美!谢谢。 – Darius 2012-07-07 16:35:43

+0

你知道我将如何得到线程中两个参与者的名字吗?所以我可以说“你和用户名之间的消息”? – Darius 2012-07-08 02:39:10