這樣可不可以.UPDATE UPDATETEST2 SET NAME1 = 
(select NAME FROM UPDATETEST2 U2, UPDATETEST1 U1
WHERE U2.ID1 = U1.ID1);

解决方案 »

  1.   

    我试过,但是错误信息是SELECT 语句返回多行
      

  2.   

    UPDATE UPDATETEST2 SET UPDATETEST2.NAME1 = NAME 
    FROM UPDATETEST2 U2, UPDATETEST1 U1
    WHERE U2.ID1 = U1.ID1 
    试试
     
      

  3.   

    没错就是有重复纪录,我改用这样
    UPDATE UPDATETEST2 SET NAME1 = 
    (select max(NAME) FROM UPDATETEST2 U2, UPDATETEST1 U1
    WHERE U2.ID1 = U1.ID1); 
    可以,但是关联条件没有作用,返回的值都是相同的,哎interbase太弱了!
      

  4.   

    你试一下
    UPDATE UPDATETEST2 SET NAME1 = UPDATETEST1.NAME 
    FROM UPDATETEST2 U2 [inner] join UPDATETEST1 U1
    on U2.ID1 = U1.ID1
      

  5.   

    辛苦一下, 把 JazzLover 的sQL 中的 别名 去掉, 不用那玩意试试
      

  6.   

    zhuzhichao(竹之草),你的where clause有问题,没关联当前正在update的表。UPDATE UPDATETEST2 U2 SET NAME1 = 
    (select max(NAME) From UPDATETEST1 U1
    WHERE U2.ID1 = U1.ID1); 祝你好运!
      

  7.   

    对不起,刚才的写法是对的,但是对查询不利,应该如下:
    UPDATE UPDATETEST2 U2 
       SET NAME1 = (Select Max(NAME) 
                      From UPDATETEST1 U1
                     Where U1.ID1 = U2.ID1);