テーブル「tUpd」の列「updCol」を更新するために(これは作業用であるため、一般的な名前で)書く必要があるステートメントがあります。tUpd には、別のテーブル tOther に存在する列「linkCol」もあります。tOther には別の列 'idCol' があります。
私の問題は、linkCol を介して特定の idCol 値を持つ行に対応する tUpd 内の行の updCol 値を更新することです。
私がうまくいくと思う解決策の1つは次のとおりです。
update
tUpd
set
updCol = XXX
where exists (
select
idCol
from
tOther
where
tOther.linkCol = tUpd.linkCol
and tOther.idCol = MY_ID
)
ただし、以前にパフォーマンスに関連してサブクエリについて警告されていたため、このアプローチがパフォーマンスの低下につながるのではないかと心配しています-このサブクエリはtUpdの行ごとに1回実行されますが、これは正しいですか?
誰かがより良い提案を得ましたか?
重要な更新: 私の職場では、SQL JOIN の使用を絶対に避けており、たとえばwhere a.col = b.col
. これは間違いなくやや厄介ですが、特に完全には理解していないロギングで柔軟性が得られます。SO、私はJOINを使用しないソリューションを探しています:)