1

次の2つのテーブルTAB_1があります

FID   T_NAME_1 NAME2
---------------------

TAB_2

FID   T_NAME_2   NAME3
----------------------

tab_1 と tab_2 のすべての一致する fid には、T_NAME_1 と T_NAME_2 の不一致フィールドがいくつかありますが、そこにあってはなりません。そのため、テーブル tab_1 の t_name_1 を、t_name_2 のすべての不一致値で更新したいと考えています。エラーを返す次のクエリを試しました

update tab_1 set t_name_1 = (  select  t2.t_name_2 from tab_2 t2 left join tab_1 t1 on 
t1.fid = t2.fid where t1.t_name_1 <> t2.t_name_2)
4

2 に答える 2

5

試す:

update tab_1 t1
   set t_name_1 = (select t2.t_name_2
                     from tab_2 t2
                    where t1.fid = t2.fid
                      and t1.t_name_1 <> t2.t_name_2)
 where exists (select 1
          from tab_2 t2
         where t1.fid = t2.fid
           and t1.t_name_1 <> t2.t_name_2)
于 2012-11-20T07:48:34.657 に答える
1

この解決策を試してください:

update tab_1 t1 set t_name_1 = (  select  t2.t_name_2 
                                  from tab_2 t2 
                                  where t1.fid = t2.fid 
                                  and t1.t_name_1 <> t2.t_name_2)
where exists (select *
              from tab_2 t2
              where t1.fid = t2.fid
              and t1.t_name_1 <> t2.t_name_2)
于 2012-11-20T07:41:23.673 に答える