我有一个需要编写的语句(使用通用名称,因为这是为了工作)来更新表“tUpd”中的“updCol”列。tUpd 还有一个列“linkCol”,它存在于另一个表 tOther 中。tOther 有另一列“idCol”。
我的问题是更新 tUpd 中行的 updCol 值,这些行通过 linkCol 对应于具有给定 idCol 值的行。
我认为应该可行的一种解决方案如下;
update
tUpd
set
updCol = XXX
where exists (
select
idCol
from
tOther
where
tOther.linkCol = tUpd.linkCol
and tOther.idCol = MY_ID
)
但是,我担心这种方法会导致性能下降,因为我之前曾被警告过与性能相关的子查询 - 此子查询将为 tUpd 的每一行运行一次,这是正确的吗?
有没有人有更好的建议?
重要更新:我的工作场所不惜一切代价避免使用 SQL JOIN,更喜欢在 where 子句中使用,例如where a.col = b.col
. 这可以说是相当尴尬,但允许在我不完全理解的特别是日志记录方面具有灵活性。所以,我正在寻找不使用 JOIN 的解决方案:)