我有以下查询:
update tab1.abc,
tab1.sbd = (select tab2.abc, tab2.sbd from tab2,tab1 where --some conditions)
where exists(select tab2.abc, tab2.sbd from tab2,tab1 where --some conditions)
现在我的任务是优化此查询。
我认为删除exists子句或结合where子句会有很大帮助。 但是怎么做呢?
PS :exists子句已到位,因为如果select子句返回零行,我希望更新的行数为零。
答案 0 :(得分:1)
JOIN
两个表而不是EXISTS
。如下所示:
UPDATE tab1
INNER JOIN tab2 ON --some join condition
SET sbd = --something
AND abc = --other something
WHERE --some conditions
答案 1 :(得分:0)