求助一条sql语句
发布于:2022-01-17 09:50:54
#1 shuangfeilee

一个论坛帖子的表,主帖和回帖都写到一个表里了,
其中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