你的数据有问题,做不到一一对应:UPDATE STUDENT S
SET GRADE=(select max(G.GRADE) FROM GRADE G WHERE S.ID=G.ID)
where exists(select G.GRADE FROM GRADE G WHERE S.ID=G.ID);

解决方案 »

  1.   

    update 
      student a
    set
      grade=(select max(grade) from grade b where a.id=b.id)
    where
      exists  (select 1 from grade b where a.id=b.id);
      

  2.   

    to  bzszp(SongZip), zmgowin(隐者(龙祖宗)) 
    谢谢回答,结果正确。
    但是,请问bzszp(SongZip):
    我的数据有什么问题呢?这样的要求也不过分啊。问题是解决了,不知道这是不是唯一的办法?(这个要求有点过分了,呵呵)
      

  3.   

    STUDENT 表 和 GRADE 表 中的ID字段数据 不是一一对应的关系
    因此按照ID对应做update时出现了问题。查ID重复的数据:select ID FROM GRADE G 
    group by ID having count(*)>1;
      

  4.   

    SORRY,I'M SORRY!!UPDATE STUDENT S
    SET GRADE=(select G.GRADE FROM GRADE G WHERE S.ID=G.ID)
    where exists(select G.GRADE FROM GRADE G WHERE S.ID=G.ID);
    就是正确答案。是我不小心,在GRADE中插入了多条数据。谢谢。