서로 다른 테이블을 세로 방향으로 합치기 위해선 2개의 쿼리문 사이에 연결 명령어를 추가하면 된다.
이때 2가지 조건을 충족해야한다.
1.두 SQL은 서로 컬럼의 개수가 동일할것
2.두 SQL의 컬럼의 타입이 동일할 것
UNION, UNION ALL
# UNION
두 테이블 합집합. 서로 중복되는 행은 1개만 출력
(select * from drink)
union
(select * from drink);
id | name | quantity | shelf_life | volume
----+--------------+----------+------------+--------
3 | 무안단물 | 41 | 35 | 600
1 | 에너지드링크 | 36 | 30 | 300
5 | 더맛 | 3 | 35 | 1000
4 | 순진맥주 | 47 | 60 | 900
2 | 오렌지주스 | 38 | 25 | 1500
(5 rows)
# UNION ALL
두 테이블의 합집합. 중복여부 체크x
(select * from drink)
union all
(select * from drink);
id | name | quantity | shelf_life | volume
----+--------------+----------+------------+--------
1 | 에너지드링크 | 36 | 30 | 300
2 | 오렌지주스 | 38 | 25 | 1500
3 | 무안단물 | 41 | 35 | 600
4 | 순진맥주 | 47 | 60 | 900
5 | 더맛 | 3 | 35 | 1000
1 | 에너지드링크 | 36 | 30 | 300
2 | 오렌지주스 | 38 | 25 | 1500
3 | 무안단물 | 41 | 35 | 600
4 | 순진맥주 | 47 | 60 | 900
5 | 더맛 | 3 | 35 | 1000
(10 rows)
UNION 명령어는 테이블 결합 이후 중복을 제거하기때문에 이를 주의해야한다.
ex)A테이블에 a행 2개, B테이블에 a행 0개 ㅡ> A UNION B ㅡ> a행 1개(B테이블엔 a행 원래 없음)
'SQL' 카테고리의 다른 글
SQL 테이블 행연결 응용 (0) | 2025.02.05 |
---|---|
SQL 테이블 행연결(EXCEPT, EXCEPT ALL) (0) | 2025.02.05 |
SQL 테이블 행연결(INTERSECT, INTERSECT ALL) (1) | 2025.01.31 |
SQL 5장 실습문제 (1) | 2025.01.23 |
SQL 집계함수 (0) | 2025.01.23 |