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
반응형