DB
EXIST : 테이블에 값이 존재하는지 확인할 때 쓰는 것
Okguri
2022. 5. 2. 19:54
@@수정필요
select 1 from table
1이나 'X'로 처리를 해주는데 이유는 진짜 값을 가져오려는 게 아니라,
있는지 없는지만 체크해오려고 하는 거기 때문에 상수값을 넣어준다
교집합, 차집합을 나타낼 때 써주면 좋다.
한 로우씩 체크를 함
select * from 무한도전;
select * from 런닝맨;
SELECT * FROM 런닝맨 A WHERE EXISTS(select 1 from 무한도전 B WHERE A.NAME= B.NAME)
1. 먼저 FROM 런닝맨이 실행
2. WHERE EXISTS 가 실행되면서 한 로우씩 체크. 무한도전 테이블과 런닝맨 테이블에 같은 NAME이 있으면 TRUE 반환하여, 해당 로우가 나타남. 만약 NAME이 같지 않으면, FALSE 반환하면서 해당 ROW는 나타나지 않음.
중요한 것 : 런닝맨 테이블에서 SELECT 해옴!
SELECT * FROM 런닝맨 A WHERE NOT EXISTS(SELECT 1 FROM 무한도전 B WHERE A.NAME = B.NAME);
=> 런닝맨과 무한도전 테이블의 NAME 컬럼이 같은 ROW를 제외하고 런닝맨 테이블의 결과값 나옴