下面是我的一个分页查询语句, 
当下面红色部分的条件加上后就会超时失败, 这是什么原因啊
where
S_ID  = 1 and  
AlarmRecords_tbl.AR_ID 
not in 
select top         10  *  from AlarmRecords_tbl 
left join car_tbl  on car_tbl.C_ID= AlarmRecords_tbl.C_ID 
left join UserToCarUserInfo_tbl  on UserToCarUserInfo_tbl.UserID= car_tbl.UserID 
left join CarUserInofo  on CarUserInofo.UserInfoID= UserToCarUserInfo_tbl.UserInfoID 
left join CarofShop_tbl  on CarofShop_tbl.C_ID= AlarmRecords_tbl.C_ID 
where
S_ID  = 1 and  
AlarmRecords_tbl.AR_ID 
not in  (
select top ((         2 - 1)*        10) AR_ID from AlarmRecords_tbl 
left join car_tbl  on car_tbl.C_ID= AlarmRecords_tbl.C_ID 
left join UserToCarUserInfo_tbl  on UserToCarUserInfo_tbl.UserID= car_tbl.UserID 
left join CarUserInofo  on CarUserInofo.UserInfoID= UserToCarUserInfo_tbl.UserInfoID 
left join CarofShop_tbl  on CarofShop_tbl.C_ID= AlarmRecords_tbl.C_ID  
where S_ID  = 1  
order by AlarmRecords_tbl.AR_ID desc  ) 
order by AlarmRecords_tbl.AR_ID desc

解决方案 »

  1.   

    try this,select * from (
    select top 10  *  from AlarmRecords_tbl 
    left join car_tbl  on car_tbl.C_ID= AlarmRecords_tbl.C_ID 
    left join UserToCarUserInfo_tbl  on UserToCarUserInfo_tbl.UserID= car_tbl.UserID 
    left join CarUserInofo  on CarUserInofo.UserInfoID= UserToCarUserInfo_tbl.UserInfoID 
    left join CarofShop_tbl  on CarofShop_tbl.C_ID= AlarmRecords_tbl.C_ID 
    where  
    AlarmRecords_tbl.AR_ID 
    not in  (
    select top ((         2 - 1)*        10) AR_ID from AlarmRecords_tbl 
    left join car_tbl  on car_tbl.C_ID= AlarmRecords_tbl.C_ID 
    left join UserToCarUserInfo_tbl  on UserToCarUserInfo_tbl.UserID= car_tbl.UserID 
    left join CarUserInofo  on CarUserInofo.UserInfoID= UserToCarUserInfo_tbl.UserInfoID 
    left join CarofShop_tbl  on CarofShop_tbl.C_ID= AlarmRecords_tbl.C_ID  
    where S_ID  = 1  
    order by AlarmRecords_tbl.AR_ID desc) 
    order by AlarmRecords_tbl.AR_ID desc) t where S_ID=1
      

  2.   

    消息 8156,级别 16,状态 1,第 2 行
    多次为 't' 指定了列 'C_ID'。
      

  3.   

    "select top 10  *  from AlarmRecords_tbl ..."
    --> 这里不要用*,把需要返回的字段列出来..
      

  4.   

    "select top 10  *  from AlarmRecords_tbl ..."
    --> 这里不要用*,把需要返回的字段列出来..
    结果集不对 最后的结果集里 有 S_ID  <>1 的记录