我想为所有活动持续时间过长的人更新我的表格。更新应该更正一次,对于后续行,我需要处理新结果。所以想到了类似的东西
UPDATE summary_table st
SET st.screen_on=newScreenOnValue
st.active_screen_on=st.active_screen_on-(st.screen_on-newScreenOnValue) --old-value minus thedifference
FROM (
SUB-SELECT with rowid, newScreenOnValue ... JOIN ... WHERE....
) nv
WHERE (st.rowid=nv.rowid)
我知道我可以通过重新运行相同的查询直接更新第一个和第二个值。但我的问题是子选择的成本似乎很高,因此想避免双重更新。两次运行相同的查询。
以上SELECT
只是写我想得到的东西的非正式方式。我知道这st
不起作用,但我把它留在这里以便更好地理解。当我尝试上述语句时,我总是在FROM
结束位置返回一个 SyntaxError。