[환경 만들기]
CREATE TABLE test1
(
no int
);
CREATE TABLE test2
(
no int
);
INSERT INTO test1 (no)
VALUES (1),(2),(3);
INSERT INTO test2 (no)
VALUES (5),(6),(3);
[UNION]
가져오는 칼럼의 갯수가 서로 다르면 에러가 발생하니 이에 주의하자.
- UNION 공통된 부분은 한번만 가져온다.
- UNION ALL 공통된 부분에 대한 고려 없이 두 테이블의 내용을 모두 표시한다. ( 중복 표시 허용 )
- UNION ( 중복 없이 )
SELECT * FROM test1
UNION
SELECT * FROM test2;
value 3 이 중복 없이 합쳐졌다.
- UNION ALL (중복 허용)
SELECT * FROM test1
UNION ALL
SELECT * FROM test2;
value 3이 중복되어 들어갔다.
[celeb 테이블 가지고 한 예시]
- 성별이 여자이면서 소속사가 YG 엔터테이먼트인 데이터를 UNION ALL 로 출력
SELECT * FROM celeb
WHERE agency = 'YG엔터테이먼트'
UNION ALL
SELECT * FROM celeb
WHERE sex = 'F';
이수현이 두번 쓰였다.
- 성별이 여자이면서 소속사가 YG 엔터테이먼트인 데이터를 UNION 로 출력
SELECT * FROM celeb
WHERE agency = 'YG엔터테이먼트'
UNION
SELECT * FROM celeb
WHERE sex = 'F';
이수현이 한번만 쓰인다.
'sql' 카테고리의 다른 글
[mysql] CONCAT, ALIAS, DISTINCT, LIMIT (0) | 2022.06.26 |
---|---|
[mysql] JOIN , SELF JOIN (0) | 2022.06.25 |
[mysql] 기초적인 논리 연산자 (0) | 2022.06.25 |
[mysql] 비교 연산자 (0) | 2022.06.24 |
[mysql] ORDER BY (0) | 2022.06.24 |