실행결과
emp_update2 테이블 조회
emp_update1 테이블 조회
코드 10-20은 코드 10-19와 거의 비슷한데, SET 절이 좀 다릅니다. SET 절에서 2개 칼럼의 값을 수정합니다. 먼저 b.salary = IFNULL(b.salary, 0)은 emp_update1 테이블의 salary 칼럼 값을 IFNULL() 함수를 사용해 변경합니다. NULL이면 0으로, NULL이 아니면 첫 번째 매개변수 값으로 변경하죠. 두 번째 a.salary = b.salary + 2000은 emp_update1 테이블의 salary 값에 2000을 더한 값으로 변경합니다. 따라서 이 UPDATE 문장은 두 테이블의 salary 값을 모두 변경하는데, WHERE 절의 조인 조건에 따라 두 테이블에서 사번이 1001~1004인 건에만 적용됩니다.
결과를 보면 emp_update1 테이블은 1001~1004까지 salary 칼럼 값이 수정되는데, 1002와 1003은 NULL이었던 값이 0으로 변경됐습니다. emp_update2 테이블은 emp_update1 테이블의 salary + 2000 값으로 변경됐고요.
이처럼 UPDATE 다음에 테이블을 여러 개 명시하고 WHERE 절에서 조인 조건을 기술하면 다른 테이블의 칼럼 값을 이용해 값을 수정할 수 있을 뿐만 아니라 한 번에 2개 이상의 테이블 칼럼 값도 변경할 수 있습니다.