📌WHERE절 IN, NOT IN
기본적인 WHERE 절의 사용에 익숙하다면 IN, NOT IN을 사용하여 일치하거나, 불일치하는 데이터만 조회할 수 있다.다음 예제를 통해 확인해보도록 하겠습니다.
📌예제
SELECT * -- 학교정보
FROM school_info;
📌조회 결과
mem_id | mem_school_name |
1 | A중학교 |
2 | B중학교 |
3 | C중학교 |
4 | D중학교 |
5 | D중학교 |
6 | A고등학교 |
📌예제
select * --학생정보
from student_info;
📌조회 결과
mem_id | mem_name | mem_address |
1 | david | 안양 |
2 | may | 과천 |
3 | jack | 광명 |
4 | jacky | 울산 |
5 | kitty | 전주 |
6 | bute | 광주 |
7 | hide | 광주 |
8 | rosa | 평촌 |
📌포함되는 데이터 조회하기 - WHERE IN
SELECT *
FROM student_info
WHERE mem_id IN (SELECT mem_id
FROM school_info);
📌조회 결과
mem_id | mem_name | mem_address |
1 | david | 안양 |
2 | may | 과천 |
3 | jack | 광명 |
4 | jacky | 울산 |
5 | kitty | 전주 |
6 | bute | 광주 |
Explanation:-
하위 쿼리에서 얻은 결과를 조회조건으로 사용하는 것과 같은 개념입니다. school_info 테이블에서 mem_id의 값을 우선 조회하고 그 후 가져온 mem_id만 student_info테이블에서 조회합니다. 즉 학교정보를 등록한 학생의 데이터만 조회해오는 결과를 가져옵니다.
📌포함되지 않는 데이터 조회하기 - WHERE NOT IN
SELECT *
FROM student_info
WHERE mem_id NOT IN (SELECT mem_id
FROM school_info);
📌조회 결과
mem_id | mem_name | mem_address |
7 | hide | 광주 |
8 | rosa | 평촌 |
Explanation:-
추가로 WHERE 절에 IN이 아닌 NOT IN을 사용하게 되면 학교정보를 등록하지 않은 학생들이 조회가 된다.
'RDBS > MYSQL' 카테고리의 다른 글
[MySQL]EXISTS, NOT EXISTS를 사용하여 데이터의 존재 여부 확인하기 (1) | 2023.05.03 |
---|---|
[MySQL]다양한 NULL 처리 방법(IFNULL, CASE문, COALESCE) (0) | 2023.05.01 |
[MySQL]해당월의 마지막 일자 구하기(LAST_DAY) (4) | 2023.04.14 |
[MySQL]날짜 포맷팅 함수 STR_TO_DATE() 사용하기(DATE_FORMAT의 역기능) (1) | 2023.04.14 |
[MySQL]조회 결과를 INSERT 하는 방법 (4) | 2023.04.08 |