하지만 오라클등 또 다른 일부 DB들은 update문 자체의 from절에서의 join을 허용하지 않습니다.
그래서 특히 오라클DB를 사용하는 유저들은 update시 이런 문제를 일반적으로 아래와 같이 풉니다.
편의상 간략화하여 제시해 드리니 아래 구문에 맞춰서 직접변경하여 구현 해 보세요~~
UPDATE a
SET (a.code, a.col1, a.col2, a.col3) =
(SELECT code1, col1, col2, col3 --> SET의 괄호안의 컬럼들과 대치되는 순서로 나열해야 함
FROM(
SELECT group-keys AS code1, sum(a) AS col1, sum(b) AS col2, sum(c) AS col3
FROM B, C
WHERE 조인조건
GROUP BY group-keys
) bc
WHERE bc.조인키 = a.조인키
)
WHERE a테이블 자체의 update대상범위 추출조건
AND EXISTS
(SELECT 1
FROM(
SELECT group-keys
FROM B, C
WHERE 조인조건
GROUP BY group-keys
) bc
WHERE bc.조인키 = a.조인키
) --> 이 조건을 안쓰면 Join과 관계없는 엉뚱한 row들도 Null로 Update되니 반드시 써야합니다.