0

私は2つのテーブルを持っています:

表1:

NULL    NULL    Cat.XX 23   Cow.XX 87
NULL    NULL    Tiger.XX 99 Elephant.XX

Column1とColumn2は、それぞれcolumn3とcolumn4の値に関連付けられているID番号です。

表2:

84048713    Cat.XX 23   Blah1   Blah2   Blah3   Blah4   
44008714    Elephant.XX 77  Blah1   Blah2   Blah3   Blah4   
64038715    Cow.XX 87   Blah1   Blah2   Blah3   Blah4
34058716    Tiger.XX 99 Blah1   Blah2   Blah3   Blah4
74038717    Zebra.XX 34 Blah1   Blah2   Blah3   Blah4
94098719    Whale.XX 47 Blah1   Blah2   Blah3   Blah4

table1の各行を適切なID番号で更新したいと思います。結果のtable1は次のようになります。

84048713    64038715    Cat.XX 23   Cow.XX 87
34058716    44008714    Tiger.XX 99 Elephant.XX

select、where、select replaceのさまざまな組み合わせを試しました(動物の名前を含むフィールドにはスペースが含まれているため、replaceを使用します)。たとえば、私は次のことを試しました。

select IDs from table2 where 
(select replace("Name", ' ', '') from table2
LIKE
(select replace("Name", ' ', '') from table1)

しかし、次のエラーが発生します。

Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

私はあなたの助けに感謝します。ありがとうございました。

4

3 に答える 3

1
update table1 set Column1ID = (select ID from table2 where column2 = table1.column3),Column2ID = (select ID from table2 where column2 = table1.column4)
于 2013-02-05T18:14:20.607 に答える
1

これを試して;

Update t1
Set t1.col1 = case t1.col3 when t2.col2 then t2.col1 else t1.col1, 
    t1.col2 = case t1.col4 when t2.col2 then t2.col1 else t1.col2
From table1 t1 join table2 t2 
    on t1.col3 = t2.col2 or t1.col4 = t2.col2
于 2013-02-05T18:25:23.350 に答える
0

ここに画像の説明を入力してください

UPDATE TABLE_1 SET ID = B.ID、ID2 = C.ID FROM TABLE_1 AS A LEFT OUTER JOIN TABLE_2 AS B ON A.TEMPID = B.TEMPID LEFT OUTER JOIN TABLE_2 AS C ON A.TEMPUD2 = C.TEMPID

于 2013-02-05T18:41:31.523 に答える