다른 테이블과의 복잡한 관계에 따라 Table_H의 "설명"열을 업데이트하려고했습니다. 여기에 원래의 (다소 obfiscated) 쿼리입니다 :Join 테이블의 날짜 열 중 하나의 최대 날짜 값을 기준으로 업데이트 수행 (Oracle)
UPDATE Table_H hb SET
description = 'New Description'
where exists
(select 1
from TABLE_J j, TABLE_I i, TABLE_K k, Table_H h, TABLE_M m
where j.Alt_id = i.Alt_id
and i.id=k.id
and k.id=h.id
and k.Alt_id = m.Alt_id
and j.Activity='Activity A'
and h.description = 'Old Description'
and h.id=hb.id
);
이 쿼리에 대한 문제는 너무 많은 Table_H 행을 갱신이었다 (쿼리에있는 다른 테이블의 행과 관련이있는 행과 같은). 이것은 Table_H가 항상 고유 한 Table_H.date 필드를 제외하고 동일한 여러 행을 가졌기 때문입니다. 필자가 실제로해야 할 일은 Table_H 행만 MAX Table_H.date 필드로 업데이트하는 것이 었습니다.
특히 내 상황에 가까운 오래된 스레드를 찾을 수 없었습니다. 분명히 Table_H.Date 열을 소개해야하지만 진행 방법을 알지 못합니다. 나는 어떤 응답에도 감사 할 것이다. 고마워요
최대 날짜가있는 행만 업데이트 하시겠습니까? –
네, 맞습니다. –