VB6,ACCESS2000开发系统。碰到一个小问题假设存在TABLE1,TABLE2,表结构完全相同。
TABLE1中数据如下
NAME    ID
公司1   001
公司2   002
公司3   003
公司4   004
公司5   005TABLE2中数据如下
NAME    ID
公司4   
公司5   
公司6   现在对TABLE2进行更新操作。
希望得到如下结果:
TABLE2
NAME    ID
公司4   004
公司5   005
公司6   我写成下面这样,报错!
UPDATE TABLE2 SET ID=(SELECT ID FROM TABLE1) WHERE TABLE2(NAME)=TABLE1(NAME);请问这个SQL应该怎么写?
请各位指教!

解决方案 »

  1.   

    UPDATE TABLE2 
    SET TABLE2 .ID=TABLE1.ID FROM TABLE1,TABLE2 
    WHERE TABLE2.NAME=TABLE1.NAME
      

  2.   

    上面是T-SQL语法
    Access中不允许用where tableA.fieldA = TableB.fieldA 来做update的连接,这是T-sql的语法,必须把t-sql的语法转成Asni的语法,用 join 来做。对查询结果关联,access必须把查询分成两部分,最后把临时表删:
    -------------------------------------------------------------------------
    select fid,sum(sl) as sumsl from aa into bb where bs=1 group by fid;update aa inner join  bb
    on aa.id=bb.fid
    set aa.sl=bb.sumsldrop table bb
    --------------------------------------------------------------------------