UPDATE table1 a SET cp_no = (SELECT b.no FROM table2 b WHERE b.gbn = 'Y' AND b.name = a.offc_name) WHERE a.code IN ('A123', 'A124', 'A125') AND EXISTS (SELECT 1 FROM table2 b WHERE b.gbn = 'Y' AND b.name = a.offc_name) ; UPDATE table1 a SET cp_no = (SELECT b.no FROM table2 b WHERE b.gbn = 'Y' AND b.name = a.offc_name) WHERE a.code IN ('A123', 'A124', 'A125') AND a.offc_name IN (SELECT b.no FROM table2 b WHERE b.gbn = 'Y') ; MERGE INTO table1 a USING table2 b ON (a.offc_name = b.name) WHEN MATCHED THEN UPDATE SET a.cp_no = b.no WHERE a.code IN ('A123', 'A124', 'A125') AND b.gbn = 'Y' ; -- b.name 이 PK 라면 다음 구문도 가능함. PK 아니라면 불가. -- 다만, 컬럼명이 name 인 걸로 봐서는 PK 일 가능성 희박해 보임 UPDATE (SELECT a.cp_no , b.no FROM table1 a INNER JOIN table2 b ON a.offc_name = b.name WHERE a.code IN ('A123', 'A124', 'A125') AND b.gbn = 'Y' ) c SET cp_no = no ; http://gurubee.net/article/79308