贴吧进入一个贴子,会默认显示每层楼的10条楼中楼回复(只显示5条,还有5条隐藏了),现在的问题就是如何能够高效的查询出所有前10条的楼中楼回复。类似下面这种效果:
贴子的直接回复要分页,楼中楼也要分页,这就是遇到的主要问题,如果说分页查询出了30条直接回复,然后再执行30条SQL语句去分页查询楼中楼,那么效率太低了!!
我的数据库中,c_id=0表示是直接回复,c_id!=0表示是楼中楼,现在想要一条SQL语句搞定“针对所有不同的c_id全部分页查询前10条楼中楼”,各位大神有办法吗?不知道百度是怎么设计的……………………贴吧楼中楼MySQL百度

解决方案 »

  1.   

    如果我设计的话我会把回复设计成一张表
    楼中楼回复设计为一张表。
    楼中楼回复有两个key,一个对应回复层数id,一个对应楼中楼层数id。
    查询的时候一个左接连查询应该就全出来了。。另外纠正一下楼主的一个观念,这也是我以前的错误认识。
    多次查询出来的结果并不一定比一次查询才出来的结果要慢。
    分组查询和嵌套查询如果出来的结果相同的话,那么分组查询虽然是一次出结果,但是做了很多没必要的查询,其效率其实要低。