【发布时间】:2015-08-12 04:10:14
【问题描述】:
Oracle中这两条update SQL语句有什么区别
第一:
UPDATE t1
SET col1 = 'Y'
WHERE EXISTS (SELECT *
FROM t2
WHERE t1.p1 = t2.p1
AND t1.p2 = t2.p2
AND t2.col3 = 'a'
AND t1.p1 = 'b'
AND t1.p2 = 'c')
第二:
UPDATE t1
SET col1 = 'Y'
WHERE EXISTS (SELECT *
FROM t2
WHERE t1.p1 = t2.p1
AND t1.p2 = t2.p2
AND t2.col3 = 'a')
AND t1.p1 = 'b'
AND t1.p2 = 'c'
【问题讨论】:
-
Sybase 中的更新 sql 应该是:update t1 set col1 = 'Y' from t1, t2 where t1.p1= t2.p1 and t1.p2= t2.p2 and t2.col3= ' a' and t1.p1='b' and t1.p2='c' 我不确定上面的 2 个 sql 是等价的还是哪个是对的...
-
它们在结果方面是相同的,但是第二个更容易理解。