使用2个表上的Join更新SQL查询

时间:2014-10-28 18:18:01

标签: oracle join

我需要从2个表中读取一次读取后我必须更新两个表上的falg。

我的SQL查询

SELECT t1.KUNNR,t1.SETT_KEY,t1.QUART_START,t1.QUART_END,t2.PAY_METH,t2.MAT_NDC,t2.AMOUNT   
FROM TSAP_REBATE_MEDI t1  
INNER JOIN  TSAP_REBATE_LINE t2  ON  t1.KUNNR=t2.KUNNR AND t1.SETT_KEY=t2.SETT_KEY  
WHERE  t1.PROCESSING_STATUS = 'N' AND t2.PROCESSING_STATUS = 'N'

现在工作正常我需要一个更新查询,其中PROCESSING_STATUS被设置为' P'在两张桌子上。

1 个答案:

答案 0 :(得分:0)

您无法同时更新两个表。运行以下性质的两个单独的UPDATE语句

UPDATE t1  
SET COLUMN = VALUE
FROM TSAP_REBATE_MEDI t1
INNER JOIN  TSAP_REBATE_LINE t2  
    ON  t1.KUNNR=t2.KUNNR 
    AND t1.SETT_KEY=t2.SETT_KEY  
WHERE  t1.PROCESSING_STATUS = 'N' 
    AND t2.PROCESSING_STATUS = 'N'
    /* Add any other conditions */

但是,如果您希望更新它们(或两者都不更新),请将这两个更新包装在BEGIN TRANSACTION - COMMIT