求助一条sql语句

#1 shuangfeilee

捕获.jpg

一个论坛帖子的表,主帖和回帖都写到一个表里了,

其中sid=0为主帖,sid=相应id的为id的回帖。

crtime为发帖和回帖时间。

现在求助,怎么实现通过回帖时间倒叙排序列出主帖的信息啊。

有知道咋弄的帮忙给弄弄,谢谢啦。

2011-07-05 12:52:31

#2 jake

这样的思路,就是先查出主贴(子查询),然后right join原表查关联的回帖,然后根据最终回帖的crtime来排序。大致上SQL是如下:
select T.* from (select A.* from A where A.sid=0) T right join A on T.sid = A.id order by A.crtime DESC
不过肯定还要继续试验。

2011-07-05 13:03:27

#3 shuangfeilee

好的,谢谢jake。

我去先去米西,一会儿回来实验一下。

2011-07-05 13:54:54

#4 shuangfeilee

mysql> select T.* from (select A.* from yb_bbs_thread AS A where A.sid=0) AS T right join A on T.sid = A.id order by A.crtime DESC;
1146 - Table 'bdm0040130_db.A' doesn't exist
mysql>
语句是这么写么?结果是这个样子的。yb_bbs_thread是表名。

2011-07-05 14:11:15

#5 jake

。。。A只是我模拟的表名,你把自己表名套上去吧。另外SQL语句可能还没能达到你想要的结果,我这里只是提供思路。

2011-07-05 18:29:42

#6 songfeiok

其实如果你要查的话 有一种方案应该速度上快于链接查询

select * from 表 order by sid desc ,crtime DESC

2011-07-23 08:15:36

#7 songfeiok

如果要 查哪一条主贴那么你可以加个where sid=

2011-07-23 08:16:45

#8 songfeiok

看错题了不好意思,jake帖子怎么不可以自己删除修改啊

2011-07-23 08:21:33

#9 jake

回复 8 songfeiok


   呵呵,得要习惯:lol

2011-07-23 09:19:42

#10 songfeiok

说啥话都得小心 这个可不行哦

2011-07-23 23:52:21