UPDATE
で追加のテーブルを結合できます
この好ましい形式を考慮したステートメント:
UPDATE books b
SET author_id = a.author_id
FROM authors a
WHERE b.author = a.author_name;
3つの理由:
-
より安全です。クエリは、一致する作成者が見つからないすべての行にNULL値を書き込みます。あなたのケースではそれは問題ではないようですが、更新する列にすでにデータがある場合、同様のクエリでデータが失われる可能性があります。一致する作成者が見つからない場合、私の代替手段は何もしません。
-
それは速いです。上記の1つ。ただし、相関サブクエリ も理由です。 あなたがひどくスケールを持っているように。テーブルへの結合は、特に数行を超える場合は、一般的に高速です。
-
よりクリーンで、追加のカラムに簡単に適合できます。