比如我的数据库中有两个表,一个是xinxi,包括ID,学号和姓名
另一个是shuju,包括ID,测验成绩和测验时间,两个表之间通过ID连接我想读取学号为“2004031111”的姓名、最后一次测验的测验时间和测验成绩,
请问这SQL语句该如何写?

解决方案 »

  1.   

    select 姓名,测验时间,测验成绩
    from xinxi a left join 
         (  shuju b join 
                (  select id, max(测验时间) as 时间
                   from shuju
                   group by id
                ) c
                on b.id=c.id and b.测验时间=c.时间
         ) on a.id=b.id
      

  2.   

    执行该语句时出现了如下错误实时错误 '-2147217900 (80040e14)':
    [Microsoft][ODBC Microsoft Access Driver] JOIN 操作语法错误。
      

  3.   

    select 姓名,测验时间,测验成绩
    from xinxi a,(select id,max(测验时间) 时间 from shuju,xinxi where shuju.id=xinxi.id group by id) b
    where a.id=b.id
      

  4.   

    select 姓名 , Min(测验时间) , 测验成绩 
    from shuju
    left join xinxi
    on xinxi.ID = shuju.ID
    where 学号 = '2004031111'
    group by 姓名 , 测验成绩
      

  5.   

    修改一下:
    select 姓名 , Max(测验时间) , 测验成绩 
    from shuju
    left join xinxi
    on xinxi.ID = shuju.ID
    group by 姓名 , 测验成绩
    having 学号 = '2004031111'
      

  6.   

    select a.ID,a.姓名,b.最后時間,b.最后成績
    from xinxi a inner join
    (select ID,max(最后時間) as 最后時間,max(最后成績) as 最后成績
    from shuju b where id='2004031111'
    group by ID) b ON a.ID=b.ID