UPDATE

違うDBを並列で使うのでかなり混乱します。別テーブルのデータを持ってきてupdateしたかっただけなんですが、DBによってだいぶ書き方が違うのです。嫌すぎる。絶対忘れると思うのでメモ。


/* MySQL(4.0.4以降) */
UPDATE items, month
SET
items.price1 = month.price1,
items.price2 = month.price2
WHERE
items.id = month.id;
AND items.price1 >= 1000;

/* SQL Server */
UPDATE items
SET
items.price1 = month.price1,
items.price2 = month.price2
FROM
items INNER JOIN month
ON items.id=month.id
WHERE
items.price1 >= 1000;

/* Oracle */
UPDATE items
SET
(price1, price2) = (SELECT price1, price2
FROM items, month
WHERE
itemsid = month.id)
WHERE items.price1 >= 1000;