【问题标题】:DB2 update using inner join使用内部联接的 DB2 更新
【发布时间】:2013-03-18 09:43:24
【问题描述】:

我想使用 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';

谢谢!

【问题讨论】:

  • 哪个版本的 DB2,在哪个平台上?我不确定它们中的 any 是否支持使用连接 - 解决方案通常是执行某种子查询。

标签: db2 sql-update inner-join


【解决方案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'
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2017-01-15
    • 1970-01-01
    • 2015-06-15
    • 2014-06-09
    • 2012-10-04
    相关资源
    最近更新 更多