有谁能告诉我如何在MySQL中将这样的东西转换为Oracle?
Update table1 t1
inner join table t2 on t1.id = t2.t1_id
left join table t3 on t2.id = t3.t2_id
set
t1.some_table = 'some_value',
t2.some_table = 'some_value',
t3.some_table = 'some_value'
where t1.id = somevalue
答案 0 :(得分:1)
在Oracle(和大多数数据库)中,您需要三个单独的语句。我想象这样的事情:
update t1
set t1.some_table = 'somevalue'
where t1.id = somevalue;
update t2
set t2.some_table = 'somevalue'
where t2.t1_id = somevalue;
update t3
set t3.some_table = 'somevalue'
where exists (select 1 from t2 where t2.t1_id = somevalue and t3.t2_id = t2.id) ;
如果您使用join
进行额外过滤,这可能不完全正确,但结构是正确的。使用where
子句进行过滤。
并且,您可能希望将所有这些包装在一个事务中,因此要么全部成功,要么全部失败。