以下のクエリを使用して一時テーブルを使用してテーブル内の複数のレコードを更新しようとしていますが、機能しません。複数のレコードを更新する適切な方法を教えてください。
UPDATE sarufoo
SET sarufoo.mobile = (SELECT mobile_no FROM logan)
WHERE sarufoo.homep IN (SELECT homep FROM logan);
以下のクエリを使用して一時テーブルを使用してテーブル内の複数のレコードを更新しようとしていますが、機能しません。複数のレコードを更新する適切な方法を教えてください。
UPDATE sarufoo
SET sarufoo.mobile = (SELECT mobile_no FROM logan)
WHERE sarufoo.homep IN (SELECT homep FROM logan);
これを実現するためのより適切な方法の 1 つは、2 つのテーブルを結合することです。
UPDATE sf
SET sf.mobile = l.mobile_no
From
sarufoo sf
JOIN logan l ON sf.homep = l.homep
更新している行と選択している行を関連付ける必要があります。そうしないと、副選択 (SET のもの) がすべての行を返します。
UPDATE sarufoo
SET sarufoo.mobile = (SELECT mobile_no FROM logan WHERE sarufoo.homep = logan.homep)
WHERE sarufoo.homep IN (SELECT homep FROM logan);