SELECT UserReg.username, JobWant.jobname, JobWant.id AS jobid, UserInfo.name, UserInfo.id AS userid, companyInfo.id AS cid FROM (  SELECT ROW_NUMBER() OVER (order by T.id desc)AS Row, T.*  from JobWant INNER JOIN companyInfo ON JobWant.compid = companyInfo.id INNER JOIN UserReg ON companyInfo.compID = UserReg.id INNER JOIN UserInfo ON JobWant.id = UserInfo.compid T ) TT WHERE TT.Row between 0 and 1拜谢各位大神了~

解决方案 »

  1.   

    多了一个TSELECT  UserReg.username , JobWant.jobname , JobWant.id AS jobid , UserInfo.name , UserInfo.id AS userid , companyInfo.id AS cid
    FROM    (
             SELECT ROW_NUMBER() OVER (ORDER BY T.id DESC) AS Row ,
                    T.*
             FROM   JobWant
             INNER JOIN companyInfo
             ON     JobWant.compid = companyInfo.id
             INNER JOIN UserReg
             ON     companyInfo.compID = UserReg.id
             INNER JOIN UserInfo
             ON     JobWant.id = UserInfo.compid
            ) TT
    WHERE   TT.Row BETWEEN 0 AND 1
      

  2.   


    SELECT TT.username,TT.jobname,TT.jobid,TT.name,
           TT.userid,TT.cid
    FROM 
    (SELECT ROW_NUMBER() OVER (order by T.id desc)AS Row,
     UserReg.username, JobWant.jobname, JobWant.id AS jobid, 
     UserInfo.name, UserInfo.id AS userid, companyInfo.id AS cid 
     from JobWant 
     INNER JOIN companyInfo ON JobWant.compid = companyInfo.id 
     INNER JOIN UserReg ON companyInfo.compID = UserReg.id 
     INNER JOIN UserInfo ON JobWant.id = UserInfo.compid) TT 
    WHERE TT.Row between 0 and 1
      

  3.   

    SELECT TT.username,TT.jobname,TT.jobid,TT.name,
           TT.userid,TT.cid
    FROM
    (SELECT ROW_NUMBER() OVER (order by T.id desc)AS Row,UserReg.username, JobWant.jobname, JobWant.id AS jobid,UserInfo.name, UserInfo.id AS userid, companyInfo.id AS cidfrom JobWantINNER JOIN companyInfo ON JobWant.compid = companyInfo.idINNER JOIN UserReg ON companyInfo.compID = UserReg.idINNER JOIN UserInfo ON JobWant.id = UserInfo.compid) TTWHERE TT.Row between 0 and 1顶唐诗!
      

  4.   


    SELECT  TT.*
    FROM    (
             SELECT ROW_NUMBER() OVER (ORDER BY T.id DESC) AS Row ,
              UserReg.username , JobWant.jobname , JobWant.id AS jobid , UserInfo.name , UserInfo.id AS userid , companyInfo.id AS cid
             FROM   JobWant
             INNER JOIN companyInfo
             ON     JobWant.compid = companyInfo.id
             INNER JOIN UserReg
             ON     companyInfo.compID = UserReg.id
             INNER JOIN UserInfo
             ON     JobWant.id = UserInfo.compid
            ) TT
    WHERE   TT.Row BETWEEN 0 AND 1
      

  5.   

    最近刚刚弄过这个,感觉思路有点想的,你看看能不能用到。
    select top 5 * from 
    (
     select id,字段A,字段B,字段C from tab a
     union 
     select 字段A,字段B,字段C from tab b
    )as tab1
    where 
    tab1.id  not in  ( top {0}
                       select id,字段A,字段B,字段C from tab a
                        union 
                        select 字段A,字段B,字段C from tab b
                       )as tab1
    把不同表的结果和在一起,再通过union 连接
    可以通过C#中sqlstr=string.Format( sql,(i-1)*5) 通过改变{0}中的值进行分页
      

  6.   

    顺便问一下到分页到底是使用 between 0 到1  效率高还是使用 top 1 + where row not  in (0*1) ..... 的效率高?
      

  7.   

    分页效率问题
    1、  between....
    2、  top  哪种效率高?