【发布时间】:2012-09-19 11:13:02
【问题描述】:
我有一个需要编写的语句(使用通用名称,因为这是为了工作)来更新表 'tUpd' 中的列 'updCol'。 tUpd 还有一个列“linkCol”,它存在于另一个表 tOther 中。 tOther 有另一列“idCol”。
我的问题是更新 tUpd 中通过 linkCol 对应于具有给定 idCol 值的行的 updCol 值。
我认为应该可行的一个解决方案如下;
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 a.col = b.col 在 where 子句中加入。这可以说是相当尴尬,但允许在我不完全理解的特别是日志记录方面具有灵活性。所以,我正在寻找不使用 JOIN 的解决方案 :)
【问题讨论】:
标签: sql sql-update informix