UNION / UNION ALL
UNION은 두 쿼리의 결과를 합치는 것을 말합니다. 이는 열의 개수가 일치하고 각 쌍의 데이터 타입들이 호환되는 두 쿼리에서만 작동합니다. 다음은 예시입니다.
SELECT stdName, addr FROM mathClassTBL
UNION ALL
SELECT stdName, addr FROM engClassTBL;
두 쿼리는 열의 개수가 같아야 하고, 데이터 형식도 각 쌍이 같거나 호환되어야 합니다. 열 이름은 첫 번째 쿼리를 따릅니다. ALL을 붙히면 중복된 열까지 모두 출력되고, ALL을 제거하고 UNION만 사용하면 중복된 열은 제거됩니다.
IN / NOT IN
IN은 첫 번째 쿼리의 내용 중 두 번째 쿼리에 해당되는 것만 조회하는 구문입니다.
SELECT * FROM userTBL
WHERE userID IN (SELECT userID FROM userTBL WHERE Recommender IS NULL);
추천인이 없는 유저들만 조회하는 예시입니다. 결과는 Recommender열이 NULL값인 행만 조회될 것입니다.
SELECT * FROM userTBL
WHERE userID NOT IN (SELECT userID FROM userTBL WHERE Recommender IS NULL);
추천인이 있는 유저들(추천인이 없는 유저들을 제외한 유저들)을 조회하는 예시입니다. NOT IN은 첫 번째 쿼리의 내용 중 두 번째 쿼리의 내용에 해당된다면 해당 행을 제외하는 구문입니다. 결과는 Recommender열이 NULL이 아니고 어떤 값이든 가지는 행만 조회될 것입니다.
'Database > SQL' 카테고리의 다른 글
MySQL - 스토어드 프로시저 (0) | 2020.12.29 |
---|---|
MySQL - 인덱스 정리! (클러스터 인덱스, 논 클러스터 인덱스) (0) | 2020.12.28 |
MySQL - JOIN 정리 (INNER, OUTER, CROSS, SELF JOIN) (0) | 2020.11.25 |
MySQL - JSON 데이터 사용 (0) | 2020.11.20 |
MySQL 내장 함수 정리 (1) | 2020.11.17 |