有两个表。
Table1:starttime,phone,duration,empid
Table2:starttime,phone,empid没有其它字段,也不能加其它主键。两个表通过starttimet和phone两个字段关联,即两个表中相对应的记录这两个字段是一样的。Table1中的empid有误,需要用Table2中的empid来更新Table1中的empid字段。
用Update语句怎么写?谢谢。

解决方案 »

  1.   

    UPDATE  table1 SET table1.[empid] = t2.[empid] 
    FROM  table1 as t1, table2 as t2  
    WHERE  t1.[phone] = t2.[phone] 
    AND t1.[starttime]=t2.[starttime]
      

  2.   

    大哥,两个表中都有很多条记录。
    两个表中的记录都是一对一的。
    Table1:
    2007/1/31  12345   10    1001
    2007/1/30  12345   10    1002
    2007/1/29  23456   10    1005Table2:
    2007/1/31  12345   2
    2007/1/30  12345   2
    2007/1/29  23456   2
      

  3.   

    startdatatime 类型是 datetime
    其它的类型是什么?我改一下类型再测你说的“操作符丢失”是语法错误,和数据的条目没有关系.
      

  4.   

    UPDATE  table1 SET table1.[empid] = t2.[empid] 
    FROM  table1  t1, table2  t2  
    WHERE  t1.[phone] = t2.[phone] 
    AND t1.[starttime]=t2.[starttime]
      

  5.   

    UPDATE  table1 SET empid = (select empid from table2 
    where table1.startime=table2.starttime and table1.phone=table2.phone)
      

  6.   

    UPDATE  table1 SET empid = (select empid from table2 
    where table1.starttime=table2.starttime and table1.phone=table2.phone)
      

  7.   

    UPDATE  table1 SET empid = 
    (select A.empid from table1 A,table2 B 
    where A.starttime=B.starttime and A.phone=B.phone)
      

  8.   

    sorry 更正下:UPDATE  A SET empid = 
    (select A.empid from table1 A
     inner join table2 B
     ON A.starttime=B.starttime 
    and A.phone=B.phone)
      

  9.   

    说明一下,这是个access数据库。
    楼上的报错:操作必须使用一个可更新的查询。
      

  10.   

    UPDATE  table1 SET table1.[empid] = t2.[empid] 
    FROM  table1  t1, table2  t2  
    WHERE  t1.[phone] = t2.[phone] 
    AND t1.[starttime]=t2.[starttime]
      

  11.   

    to ls:
    update是不支持from子句的。
      

  12.   

    UPDATE  table1 t1 ,table2 t2 SET t1.[empid] = t2.[empid] 
    WHERE  t1.[phone] = t2.[phone] 
    AND t1.[starttime]=t2.[starttime]
      

  13.   

    access就只有这样做了,有点别扭