왕초보 개발일지/기타
select update한번에 하기
n년차초보개발자
2023. 6. 13. 17:41
728x90
반응형
늘 새로 검색하던 쿼리라 기록으로 남겨둬야겠다
select한 row들을 한번에 업데이트 할 수 있을까?
=>있다
oracle버전기록_)
UPDATE 업데이트할테이블 a
SET A.컬럼 = (SELECT b.업데이트될컬럼 FROM 업데이트될테이블 b WEHRE a.컬럼=b.업데이트될컬럼)
만약 두 테이블의 데이터의 수가 다르다면
이런 경고가 뜬다.
나의 경우는 where절에 예외데이터를 제외하고 업데이트하도록 수정해서 업데이트했다
(그래도 저 alert은 뜸. 하지만 예외데이터에는업데이트 되지않고 원하는업데이트가 진행됐음)
그렇다면 A테이블에는있고 B테이블에는 없는지는 어떻게 찾았는가
=>left outer join을 이용했다
SELECT A.*,B.name
FROM 에이테이블 A LEFT OUTER JOIN 비테이블 B
ON A.name = B.name WHERE B.name IS NULL;
=> LEFT OUTER JOIN은 A테이블에있는 전체와 A와 겹치는 B테이블이없는경우 A테이블만 출력이 된다. 당연히 B테이블의 자리가 비어있을테니 IS NULL로 조회하면 어떤데이터가 B와 겹치지 않는지 알 수 있다.
728x90
반응형