表A
EvaID PostID SelfID
表B
userid  usernamepostid==useridselfid==userid我的环境是
一个评论功能,
evaid评论编号 postid被评论人id  selfid发布评论的人的id要查询出
evaid  postname(postid)  selfname(selfid)
而且是分页查,@start代表条数,@id代表查询某个人下面的评论
每页10条我写了一条查询语句
SELECT top 10 b.UserName AS SelfName,b_1.UserName AS PostName, a.* FROM a INNER JOIN b AS b_1 ON a.PostID= b_1.UserID INNER JOIN b ON a.SelfID = b.UserID where PostID=@id and evaid not in(select top (@start) evaid from a) order by evaid desc";不知道咋就是查不出来,求高手帮忙写一条,
再顺便帮咱找找错在哪里?

解决方案 »

  1.   


    就是一个评论功能.一个用户表,一个评论表
    要查询出评论表的所有字段,以及评论表内的postid对应的username和评论表内的selfid对应的userid
    postid是被评论人,selfid是评论人.评论表evaid ... postid selfid用户表id username ....
      

  2.   

    select a.* , t1.username , t2.username from a 
    left join b t1 on a.postid = t1.id
    left join b t2 on a.selfid = t2.id至于分页则参考如下的内容.
    http://topic.csdn.net/u/20100203/17/8F916471-597D-481A-B170-83BCEFE3B199.html
      

  3.   

    不知道@start代表的是什么意义.
    按照你的写法.@start应该为 每页行数 * (第几页-1).
    例如你要得到第9页的数据,则 @start 应该为 10 * (9-1) = 80
    还有select top (@start) evaid from a应该为
    select top (@start) evaid from a order by evaid desc