1

我想使用 INNER JOIN 在 DB2 表上创建一个 UPDATE 语句我试试这个

update TABLE1 set FIELDVALUE='text/html' from TABLE1 as T1 
inner join TABLE2 as T2 on T1.PROFILE_ID = T2.PROFILE_ID 
inner join TABLE3 as T3 on T2.MSGTYPE_ID = T3.MSGTYPE_ID 
where T1.NAME='contentType' and T3.NAME='Order';

我提到选择工作正常

select * from TABLE1 as T1 inner join TABLE2 as T2 
on T1.PROFILE_ID = T2.PROFILE_ID 
inner join TABLE3 as T3 on T2.MSGTYPE_ID = T3.MSGTYPE_ID 
where T1.NAME='contentType' and T3.NAME='Order';

谢谢!

4

1 回答 1

1

Db2 不允许“更新 + 加入”语法。但是,您可以像这样重写您的 sql(未经测试):

update TABLE1 set FIELDVALUE='text/html' 
where table1.primary_key in (
(
    select t1.primary_key
    TABLE1 as T1 
    inner join TABLE2 as T2 on T1.PROFILE_ID = T2.PROFILE_ID 
    inner join TABLE3 as T3 on T2.MSGTYPE_ID = T3.MSGTYPE_ID 
    where T1.NAME='contentType' and T3.NAME='Order'
);
于 2013-05-12T19:41:58.623 回答