在mdb中有两个表a和b,若两表记录中的id号和name相等,则用b表中的数据来更新a表中的数据,自己尝试写了语句,在access中运行,出现错误
update t1 set NAME=t2.NAME
FROM poi_end t1,POI_none t2  where  t1.Text_=t2.PID
提示错误为:语法错误(操作符丢失),在查询表达式中“NAME=t2.NAME
FROM poi_end t1,”
请各位帮忙一下,呵呵

解决方案 »

  1.   

    update t1 set t1.NAME=t2.NAME //这里
    FROM poi_end t1,POI_none t2  where  t1.Text_=t2.PID 
      

  2.   

    我这样改了,还是有错的
    update t1 set t1.KEYWORD=t2.KEYWORD FROM poi_end t1,POI_none t2  where  t1.Text_=t2.PID 
      

  3.   

    需要指明 set t1.name
      

  4.   

    update poi_end //表名
    set 字段=t2.字段
    from poi_end t1,POI_none t2
    where p1.id=p2.id and p1.name=p2.name 
      

  5.   

    update t1 set t1.KEYWORD= (select t2.KEYWORD FROM poi_end t1,POI_none t2  where  t1.Text_=t2.PID) where poi_end.text=POI_none.PID;  
      

  6.   

    to guanpingcn :如果需要更新多个字段呢?又该怎么写呢?
      

  7.   

    表poi_end中需要更新的字段与表poi_none中的字段名相同
      

  8.   

    1楼的应该没有问题。Update t1 --需要修改的表的别名,来自于from语句。
    set t1.ColumnName1 = t2.ColumnName1 
    --这里需要标明哪张表的字段,有很多表都可能有字段名相同的字段,所以最好都要写用 TableName.ColumnName。这样才不容易出错。
    From Table1 t1, Table2 t2
    Where t1.ColumnName2 = t2.ColumnName2
      

  9.   

    正解:这个问题经常发生在从其他中大型数据库开发者转到用 jet db 4 的Access的时候
    Access中不允许用where tableA.fieldA = TableB.fieldA 来做update的连接,这是T-sql的语法,必须把t-sql的语法转成Asni的语法,用 join 来做。
    谢谢各位了