下面的Sql语句报错:
服务器: 消息 512,级别 16,状态 1,行 1
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的
—————————————————————————————
select id,content,sendtime from Chat 
where sendtime <(
select sendtime from Chat where (user_to='me' or user_to='所有人' ) and IsPrivate=0
) and (user_from='me' and (user_to='you' or user_to='所有人')) or ((user_to='me' or user_to='所有人' ) and IsPrivate=0) order by sendtime怎么实现此功能??

解决方案 »

  1.   

    select id,content,sendtime from Chat 
    where sendtime <(
    select MAX(sendtime) from Chat where (user_to='me' or user_to='所有人' ) and IsPrivate=0
    ) and (user_from='me' and (user_to='you' or user_to='所有人')) or ((user_to='me' or user_to='所有人' ) and IsPrivate=0) order by sendtimeMAX(sendtime)
      

  2.   

    select id,content,sendtime from Chat 
    where sendtime <(
    select top 1
    sendtime from Chat where (user_to='me' or user_to='所有人' ) and IsPrivate=0
    ) and (user_from='me' and (user_to='you' or user_to='所有人')) or ((user_to='me' or user_to='所有人' ) and IsPrivate=0) order by sendtime
      

  3.   

    select id,content,sendtime from Chat 
    where sendtime < all (
    select sendtime from Chat where (user_to='me' or user_to='所有人' ) and IsPrivate=0
    ) and (user_from='me' and (user_to='you' or user_to='所有人')) or ((user_to='me' or user_to='所有人' ) and IsPrivate=0) order by sendtime或是加个ALL
      

  4.   

    select id,content,sendtime from Chat a 
    where not exists(
    select sendtime from Chat where (user_to='me' or user_to='所有人' ) 
    and IsPrivate=0 and a.sendtime>sendtime) 
    and (user_from='me' and (user_to='you' or user_to='所有人')) or ((user_to='me' or user_to='所有人' ) and IsPrivate=0) order by sendtime
      

  5.   

    select id,content,sendtime from Chat 
    where sendtime <(
    select MIN(sendtime) from Chat where (user_to='me' or user_to='所有人' ) and IsPrivate=0
    ) and (user_from='me' and (user_to='you' or user_to='所有人')) or ((user_to='me' or user_to='所有人' ) and IsPrivate=0) order by sendtime
    MIN(sendtime)