请教一条sql语句,希望大侠们进来看看。
有如下一个表结构,pid 是帖子id,tid 是主题id,parentid是父id。
当layer=0时 表示这一个是主题的第1楼帖子,就是楼主发的;
当layer=1时 表示这个回帖是回个这个主题的,我们算做是回给楼主的;
当layer=2时 表示这个回帖是回个parentid所指代的帖子的人的。
tablename
pid tid parentid layer poster posterid
4734182 363580 4734182 0 user01 34550
4734192 363580 4734192 1 user02 40131
4734195 363580 4734195 1 user03 22843
4734198 363580 4734195 2 user01 34550
4734203 363580 4734203 1 user04 38269
现在有个题目,就是统计每个被哪些用户回了多少次贴。
形成如下的表格(示例):
用户名 回复人 次数
user1 user2 4
user1 user3 5
user2 user1 10
...
请问应该怎样写sql语句呢?
麻烦大侠们帮帮忙啊!
我现在想到的方法大概是这样的:
1、 select user2 from tablename where layer=1 and tid in(select tid from tablename where lager=0 and posterid = 'user1')
找到user2对user1 发起的主题的直接回复。
2、select user2 from tablename where layer=2 and tid in(select tid from tablename where lager=1 and posterid = 'user1')
找到user2对user1 回帖的回复。
然后再把两个连起来。然后再重复每个用户,这个方法很笨,而且数据量大的时候相当慢,如果用户数量较多,超过1万,用什么方法比较快捷呢?
万分感谢!
当layer=0时 表示这一个是主题的第1楼帖子,就是楼主发的;
当layer=1时 表示这个回帖是回个这个主题的,我们算做是回给楼主的;
当layer=2时 表示这个回帖是回个parentid所指代的帖子的人的。
tablename
pid tid parentid layer poster posterid
4734182 363580 4734182 0 user01 34550
4734192 363580 4734192 1 user02 40131
4734195 363580 4734195 1 user03 22843
4734198 363580 4734195 2 user01 34550
4734203 363580 4734203 1 user04 38269
现在有个题目,就是统计每个被哪些用户回了多少次贴。
形成如下的表格(示例):
用户名 回复人 次数
user1 user2 4
user1 user3 5
user2 user1 10
...
请问应该怎样写sql语句呢?
麻烦大侠们帮帮忙啊!
我现在想到的方法大概是这样的:
1、 select user2 from tablename where layer=1 and tid in(select tid from tablename where lager=0 and posterid = 'user1')
找到user2对user1 发起的主题的直接回复。
2、select user2 from tablename where layer=2 and tid in(select tid from tablename where lager=1 and posterid = 'user1')
找到user2对user1 回帖的回复。
然后再把两个连起来。然后再重复每个用户,这个方法很笨,而且数据量大的时候相当慢,如果用户数量较多,超过1万,用什么方法比较快捷呢?
万分感谢!
...全文
相关推荐
dxbbs大侠论坛 v8.1 MSSQL build 0311_dxbbs81-mssql.zip
对于希望搭建论坛的个人或组织,这是一个值得考虑的选择。
C#登陆窗体代码(数据库为SQL2005)(已调通)
自己编写的登陆窗体源代码,希望对大家有所帮助,本人菜鸟一枚,希望大侠多批评!
论坛MSSQL_C#论坛社区程序.rar
综上所述,这个压缩包包含了一个用C#语言开发,与MSSQL数据库配合使用的论坛社区软件,适用于那些希望搭建在线讨论平台的用户。
管理系统源码
开发者谦虚地表示希望这个程序能对使用者有所帮助,并欢迎其他大侠(经验丰富的开发者)给予指导和建议,这表明该源码可能仍处于不断优化和完善的过程中。在文件列表中,我们看到了以下三个文件:1.
精通PHP4网络编程
总的来说,《精通PHP4网络编程》涵盖了从基础知识到实际应用的全方位内容,适合那些希望进入Web开发领域的初学者。


