MariaDB

데이터베이스 UNION/ UNION ALL/ NOT IN / IN

Yonggyu 2023. 10. 12. 15:39
반응형

 

UNION / UNION ALL

UNION은 두 쿼리의 결과를 행으로 합치는 것을 말한다.

형식

SELECT 문장1
UNION [ALL]
SELECT 문장2;

 

대신 SELECT1 과 SELECT2의 결과의 열의 개수가 같아야 하고, 데이터 형식도 각 열단뒤로 같거나 호환되는 형태여야 한다. 1은 INT인데 2는 CHAR 이라면 오류가 발생한다. 또한 열이름은 첫번째 SELECT문의 열 이름을 따른다.

UNION 사용하면 중복된 열은 제거되고 데이터가 정렬되어 나오며, ALL을 사용하면 중복된 열까지 모두 출력된다.

 

 

 

 

NOT IN / IN

NOT IN은 첫번째 쿼리의 결과 중에서, 두 번쨰 쿼리에 해당하는 것을 제외하기 위한 구문이다.


만약 사용자테이블(usertbl)에서 전화번호를 등록하지않는 사용자를 제외하고 모두 출력한다면

SELECT *
FROM usertbl   -- name은 이름, mobile은 전화번호 속성에 해당한다.
WHERE NAME NOT IN (SELECT NAME FROM usertbl WHERE mobile IS NULL);

 

 

IN은 NOT IN 과 반대로 해당되는 것만 출력하는 것이다.


반대로 전화번호를 등록하지 않은 사용자만 출력한다면 NOT IN 대신 IN을 사용하는 것이다.

SELECT *
FROM usertbl
WHERE NAME IN (SELECT NAME FROM usertbl WHERE mobile1 IS NULL);

 

 

 

728x90
반응형