2013-05-10 69 views
0

我有一個表「REVIEW」中的值需要根據表中具有相同REFERENCE_NUMBER,具體REVIEW_TYPE和REVIEW_STATUS的其他記錄將REVIEW_STATUS從「UNDER_REVIEW」更改爲「Abstain」是「ABSTAIN」。我已在SQL小提琴MySQL更新單個表加入

http://sqlfiddle.com/#!2/8227f/1

建立一個樣品,我可以查詢表的記錄,但我有困難得到更新查詢正確的。

-- run 
UPDATE TABLE REVIEW AS REV1 
LEFT JOIN REVIEW AS REV2 
ON (REV1.REFERENCE_NUMBER=REV2.REFERENCE_NUMBER) 
SET REV1.REVIEW_STATUS='ABSTAIN' 
WHERE 
REV1.REVIEW_TYPE ='QOC' 
AND 
REV1.REVIEW_STATUS='UNDER_REVIEW' 
AND 
REV2.REVIEW_TYPE ='MED_NEC' 
AND (REV2.REVIEW_STATUS ='ABSTAIN') 
; 

您的幫助表示感謝!謝謝!

+1

有t無理由o如果您正在查找您要加入的表中的特定值,請使用「LEFT JOIN」。 – Barmar 2013-05-10 21:53:33

回答

2

變化

UPDATE TABLE REVIEW AS REV1 
... 

UPDATE REVIEW AS REV1 
... 

更新SQLFiddle

0

這是字表

UPDATE REVIEW AS REV1 
LEFT JOIN REVIEW AS REV2 
ON (REV1.REFERENCE_NUMBER=REV2.REFERENCE_NUMBER) 
SET REV1.REVIEW_STATUS='ABSTAIN' 
WHERE 
REV1.REVIEW_TYPE ='QOC' 
AND 
REV1.REVIEW_STATUS='UNDER_REVIEW' 
AND 
REV2.REVIEW_TYPE ='MED_NEC' 
AND (REV2.REVIEW_STATUS ='ABSTAIN') 
;