以下标准SQL是否兼容?如果没有,那为什么不呢?
UPDATE a
SET a.Y = 2
FROM TABLE_A a
INNER JOIN TABLE_B b ON
a.X = b.X
WHERE b.Z = blahblah
答案 0 :(得分:2)
符合ANSI标准的编写查询的方法是:
UPDATE TABLE_A
SET Y = 2
WHERE b.Z = blahblah AND
EXISTS (SELECT 1 FROM TABLE_B b WHERE TABLE_A.X = b.X);
据我所知,ANSI和ISO都没有为他们不做某事提供理由。我可以推测,当给定行上存在多个匹配时,FROM
子句会导致问题。就个人而言,我不想在有关更新发生顺序的争论中进入会议室。