web-dev-qa-db-ja.com

条件に基づいて別のテーブルの列で列の値を更新する

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

table1(id、item、price)値:

id | item | price
-------------
10 | book | 20  
20 | copy | 30   
30 | pen  | 10

.... table2(id、item、price)値:

id | item | price
-------------
10 | book | 20
20 | book | 30

今、私はしたい:

update table1 
   set table1.Price = table2.price 
 where table1.id = table2.id
   and table1.item = table2.item.

どうすればいいのですか?

98
niceApp

このような何かがそれを行う必要があります:

UPDATE table1 
   SET table1.Price = table2.price 
   FROM table1  INNER JOIN  table2 ON table1.id = table2.id

また、これを試すこともできます:update table1 set price =(table1.id = table2.idからtable2から価格を選択);

174
RageZ

これは確実に機能します:

UPDATE table1
SET table1.price=(SELECT table2.price
  FROM table2
  WHERE table2.id=table1.id AND table2.item=table1.item);
75
Nadeem