UPDATE TABLE1 SET COL1 = 'UPDATED'
INNER JOIN TABLE2 ON TABLE1.ID = TABLE2.ID
WHERE COL2 = '1' AND COL3 IN('A','B') AND COL4 = 'NEW'
以上命令抛出'SQL命令未正确结束',我可以知道它为什么会发生吗? 注意:COL2,COL2位于TABLE1中,而COL4位于TABLE2中,如果有帮助的话。
答案 0 :(得分:1)
Oracle不支持update
语法中的显式连接(在某些条件下使用子查询时,它确实支持连接)。像这样的查询应该有效:
update TABLE1
set COL1 = 'UPDATED'
where col2 = '1' and col3 in ('A', 'B') and col4 = 'NEW' and
exists (select 1
from TABLE2
where TABLE1.ID = TABLE2.ID
);
where
中的条件可能需要在子查询中进行,如果它们引用TABLE2
。