두 테이블 비교 후 없는 컬럼 업데이트 하기 0 1 1,147

by 커피는스벅 [SQL Query] Postgresql DB기타 [2019.06.20 13:32:01]


DB 왕 초보 입니다 ㅠㅠ

두 테이블 참조하여 한 테이블 상태값을 변경 하는 쿼리 짜는 중에 막혀서 도움 요청합니다. 

테이블 1

  이름 상태
1 홍길동 1
2 갑순이 1
3 갑돌이 1

테이블 2

  이름
1 홍길동
2 갑돌이

두 테이블을 비교 했을 때

모두 있는 사람 건드리지 않고

테이블1에 있었으나 테이블2에서 없어진 사람  -> 테이블1에서  상태 0 으로 변경

 

결과 :

테이블 1

  이름 상태
1 홍길동 1
2 갑순이 0
3 갑돌이 1

 

select *
from 테이블2 as a right outer join 테이블1 b on a.이름 = b.이름
where a.이름 is null;

위와 같이 select 문으로 조회 까지는 가능 했으나

해당 쿼리 참조하여 update 했을 경우 모두 적용이 되어 버립니다.

조건 값이 잘 못 된 것 같은데 어느 부분을 수정해야 할지 조언 부탁드립니다.

update 테이블1
set 상태 = '0'
from 테이블2 as a right outer join 테이블1 b on a.이름 = b.이름
where a.이름 is null;

 

문제의 쿼리문입니다 ㅠㅠ

by 마농 [2019.06.20 15:49:38]
UPDATE 테이블1 a
   SET 상태 = 0
 WHERE NOT EXISTS (SELECT 1 FROM 테이블2 b WHERE b.이름 = a.이름)
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입