2013-05-10 3 views
0

У меня есть значения в таблице «REVIEW», которые должны изменить REVIEW_STATUS с «UNDER_REVIEW» на «Воздержание» на основе других записей в таблице, которые имеют тот же REFERENCE_NUMBER, определенный REVIEW_TYPE и что REVIEW_STATUS «ВОЗДЕРЖАЛСЯ». У меня есть образец, установленный в SQL FiddleMySQL update single table with join

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

Там нет причин, т o используйте «LEFT JOIN», если вы ищете конкретные значения в таблице, с которой вы соединяетесь. – Barmar

ответ

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') 
;