如图,一个脚本会定期去网页上抓到NBA比赛数据存入数据库,team1和team2是参赛的队伍;state为比赛状态:当比赛状态为结束时,state是2,如果不结束,则为1,如果未开始,则state为0;fetch_time抓取此条数据的时间;start_time为比赛的开始时间。我想找出一定时间内(比如2017-05-04到2017-05-21)
1.所有比赛的集合,
2.并且state=2(即比赛已经结束)
3.对于每场比赛fetch_time为所有抓取记录中最早的记录请问sql语句该怎么写呀,求大神指点, 我写了,貌似结果不对SELECT * FROM `sports_nba` WHERE state=2 and start_time Between '2017-05-04' And '2017-05-21' group by `team1`,`team2'查询的结果少了好多

解决方案 »

  1.   

    试试这个:
    SELECT `team1`,`team2`,min(fetch_time) 
    FROM `sports_nba` 
    WHERE 
    state=2 
    and start_time Between '2017-05-04' And '2017-05-21' 
    group by `team1`,`team2`
      

  2.   

    Select中没有使用聚合函数,group by只会随机取第一条数据吧
      

  3.   

    直接这样,不分组呢:SELECT * FROM `sports_nba` WHERE state=2 and start_time Between '2017-05-04' And '2017-05-21'