select messages.*,virtualUser.loginname,virtualUser.companyname from(select smsgroupid,userid,count(*) as groupnums,SUM(successnum) as sumsuccessmsg,msg,senddate,SUM(failurenum) as sumfailmsg,state from messages where exists(select 3927 as id) and senddate between '2009-01-20 00:00:00' and '2009-02-19 06:10:21' group by smsgroupid,userid limit 20) messages left join users virtualUser on messages.userid = virtualUser.id 
这条语句看不明白,from(select smsgroupid,userid,count(*) as groupnums,SUM(successnum) as sumsuccessmsg,msg,senddate,SUM(failurenum) as sumfailmsg,state from messages where exists(select 3927 as id) and senddate between '2009-01-20 00:00:00' and '2009-02-19 06:10:21' group by smsgroupid,userid limit 20)
这段是什么意思呢?

解决方案 »

  1.   

    from(select smsgroupid,userid,count(*) as groupnums,SUM(successnum) as sumsuccessmsg,msg,senddate,SUM(failurenum) as sumfailmsg,state from messages where exists(select 3927 as id) and senddate between '2009-01-20 00:00:00' and '2009-02-19 06:10:21' group by smsgroupid,userid limit 20) 这段,怎么这样写在里面的?怎么理解?
      

  2.   

    问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧
    QQ群 48866293 / 12035577 / 7440532 / 13666209
    http://forum.csdn.net/BList/OtherDatabase .
    http://www.accessbbs.cn/bbs/index.php .
    http://www.accessoft.com/bbs/index.asp .
    http://www.access-programmers.co.uk/forums .
    http://www.office-cn.net .
    .
    http://www.office-cn.net/home/space.php?uid=141646 .
      

  3.   

    (select smsgroupid,userid,count(*) as groupnums,SUM(successnum) as sumsuccessmsg,msg,senddate,SUM(failurenum) as sumfailmsg,state from messages where exists(select 3927 as id) and senddate between '2009-01-20 00:00:00' and '2009-02-19 06:10:21' group by smsgroupid,userid limit 20)
    这一段怎么理解?
      

  4.   

    select 3927 as id  =  select id from table where id = 3927  ?
      

  5.   


    不等。select 3927 as id ;是直接取一个 数字 3927 做为伪列 idselect id from table where id = 3927
    是从表table中取一个id=3927记录的id字段的值。
    建议看一下数据库原理。否则很难再往细里讲清楚了。