同时更新和查询学生表:
学生id 学生名
1      张三
2      李四成绩表
成绩id 成绩
1      优
2      良
3      差
学生成绩表
id   学生id   成绩id
1    1        1
2    2        2
现在需要在学生成绩表增加两列,存入学生id对应的学生姓名,成绩id所对应的成绩(方便直接使用),如下学生成绩表:
id   学生id   成绩id  学生名字  成绩名
1    1        1       张三      优
2    2        2       李四      良请问怎么编写sql语句合理呢
下面报a错了
update 学生成绩表 a set 学生名字 = (select 学生名 from 学生表 where id = a.学生id), set 成绩名...

解决方案 »

  1.   


    实现思路update table1 set table1.column1 = table2.column1,...
    from table2 where table1.id = table2.id
    and exists (select 1 from table1 where table1.id = table2.id)
      

  2.   


    update 学生成绩表 a set 学生名字 = xxx, 成绩名=xxx
    --一个set够了
      

  3.   

    update 学生成绩表 set 学生名字 = xxx, 成绩名=xxx
      

  4.   


    刚才试了一下,发现不行。无法绑定多个部分组成的标识符table.id
    #3楼的人才我就…… 好吧,还是谢谢你回帖
    召唤,1个小时过去了,sqlserver牛人们呢?
      

  5.   


    update 学生成绩表 set 学生名字=学生id,成绩名=成绩
    from 学生成绩表 a left join 学生表 b on a.学生id=b.学生id
    left join 成绩表 c on a.成绩id=c.成绩id
      

  6.   


    --看着头晕,刚才看错了
    update 学生成绩表 set 学生名字=b.学生名,成绩名=c.成绩
    from 学生成绩表 a left join 学生表 b on a.学生id=b.学生id
    left join 成绩表 c on a.成绩id=c.成绩id