是的,SQL UPDATE
可以与一起使用,作为SELECT
的子查询。需要在子查询中订购的SQL更新
人在那里谁拥有了以下问题的解决方法:
不时程序在TABLE1
生成数据错误(我们是不是该代码的所有者,但需要使用程序...)
我们使用触发器协议对AUDIT
表的所有更改。
我们可以找到以下选择错误的情况(和正确的旧值):
select top 1 audit.OldValue
from TABLE1
left join AUDIT on AUDIT.Table1_ID = TABLE1.ID
where <...some conditions...>
order by AUDIT.UpdateDate desc
由于有记录的一些变化,我们只需要修改(order by updatedate
,然后采取TOP 1
)
我们将纠正数据错误,如果我们可以使用UPDATE
命令状
Update TABLE1
set VALUE =
(select top 1 audit.OldValue
from TABLE1
left join AUDIT on AUDIT.Table1_ID = TABLE1.ID
where <...some conditions...>
order by AUDIT.UpdateDate desc)
where TABLE1.ID = AUDIT.Table1_ID
但是:你不能使用order by
在子查询中...
您使用哪个dbms? – jarlh
[如何更新来自其他表的顶部1的列]的可能的副本(https://stackoverflow.com/questions/6952277/how-to-update-the-column-coming-from-top-1-of -other-table) – Prisoner
我们使用MS-SQL-Server 2012 –