现有2个表,假定一个表里面有姓名,学号和成绩(空),另一个有学号(与前一个表对应)和成绩。现在要把成绩填进第一个表。
如果用select的话, 我写成select tabel1.name,table1.id,table2.score from table1,table2 where table1.id=table2.id
问题在于我现在要“写入”table1,比如用update. 怎样做呢?
谢谢

解决方案 »

  1.   

    分别对两个表进行update另外,你的表是怎么设计的,是否合理?
      

  2.   

    这个表确实因为自身的原因显得不太合理(没办法,拿来就这样的)
    怎样分别update,楼上能说详细一点吗?
    其实我的本意是把table2里面的score填入table1以后table2就可以不要了...
      

  3.   

    你首先要把表TABLE1增加一列,然后用你上面的查询语句用查询添加的方法把娄据加进去。如果这样不行的话,你可以建一个表3,分四个字段,然后再用查询添加的方法把数据加到表3 中
      

  4.   

    update table1 set score=table2.score from table2 where table1.id=table2.id
      

  5.   

    update table1 set score=table2.score from table2 where table1.id=table2.id这个是绝对正确的~
      

  6.   

    谢谢 syszj() 朋友提供帮助, 我也觉得这样的查询应该万无一失了,可惜仍然报错
    在vb自带的visdat可视数据管理器的sql窗口运行后提示:
    “Syntax error (missing operator) in query expression 'table2.score from table2' ” 错误号3075
    可不可以再指点一下下...
      

  7.   

    SQL 和ACCESS的写法有点不同的
      

  8.   

    對visdata我不了解.對於access數据庫好像只支持97版的.97以上的並不支持.如果是97以上的access,那你可以做一個查詢:SELECT table1.學號, table1.成績, table2.成績
    FROM table1 INNER JOIN table2 ON table1.學號 = table2.學號,然后檢視結果,把table2.成績copy下來,貼在table1.成績即可.如果是sql server,那你就用update寫一段程式更新table1.
      

  9.   

    在syszj() 和其他朋友的指点下,我也终于尝试出一种可行的解决办法:
    update table1,table2 set score=table2.score where table1.id=table2.id
    此方法在vb6.0的visdata下调试通过。
    --------------------------------------
    额外的问题:这是我首次在csdn提问,并得到大家的热情帮助。我打算结帖了,这个怎么弄呢?大侠指点一下吧,嘻嘻~~~
      

  10.   

    點擊右下角的"管理",會列出回復人及回復內容,在時間后有一空格,輸入你給每一個回復人的分數,然后在上在的密碼框中輸入你在csdn中的密碼,點擊給分,按提示做就可以了.