집합연산 UNION / UNION ALL
중복된 값을 제거하는 것이 UNION의 default
만약에 중복되는 값이 없는 테이블 연산이면 UNION ALL을 사용하는 것이 좋다
주의할 점 : A UNION B 를 수행할 때 A에는 ORDER BY 사용 못함
로그인 아이디 | 연락처 | 주소 |
A | 010-1111-1111 | 광진구 자양동 |
B | 010-2222-2222 | 송파구 석촌동 |
로그인 아이디 | 연락처 | 주소 |
C | 010-3333-3333 | 분당구 판교동 |
B | 010-2222-2222 | 송파구 석촌동 |
UNION 결과 => 중복 제거
로그인 아이디 | 연락처 | 주소 |
A | 010-1111-1111 | 광진구 자양동 |
B | 010-2222-2222 | 송파구 석촌동 |
C | 010-3333-3333 | 분당구 판교동 |
UNION ALL 결과 => 중복 허용
로그인 아이디 | 연락처 | 주소 |
A | 010-1111-1111 | 광진구 자양동 |
B | 010-2222-2222 | 송파구 석촌동 |
C | 010-3333-3333 | 분당구 판교동 |
B | 010-2222-2222 | 송파구 석촌동 |
JOIN 연산 사용 예시
-- product 테이블에서 Price가 5이하 또는 200 이상인 상품들만 출력하세요
SELECT *
FROM Products
WHERE price <= 5
UNION
SELECT *
FROM Products
WHERE price >= 200
FULL OUTER JOIN (MySQL에선 지원 안되지만 LEFT와 RIGHT를 사용해서 구현)
고객정보는 있지만 주문 정보는 없을 때
주문 정보는 있지만 고객 정보는 없을 때 를 모두 조회하고 싶다면 LEFT 조인과 RIGHT 조인을 UNION 해준다
SELECT *
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
UNION
SELECT *
FROM Customers
RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
HACKER RANK
정답 확인은 더보기 클릭
1. Symmetric Pairs - https://www.hackerrank.com/challenges/symmetric-pairs/problem?h_r=internal-search
/*
20 20 (2번 나와야함 모두)
UNION
20 21
22 23
*/
-- 20 20 케이스 도출
SELECT x, y
FROM Functions
WHERE x = y
GROUP BY x, y
HAVING count(*) = 2
UNION
SELECT a.x
, a.y
FROM Functions AS a
INNER JOIN Functions AS b ON a.x = b.y AND a.y = b.x
WHERE a.x < a.y
ORDER BY x
< 기초 SQL 시리즈 >
2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 1부
2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 2부
2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 3부 完
< 중급 SQL 시리즈 >
2020/07/15 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 1부
2020/07/15 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 2부
2020/07/16 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 3부
2020/07/16 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 4부 完
이 포스팅은 해당 강좌를 수강하며 작성하였습니다.
[백문이불여일타] 데이터 분석을 위한 중급 SQL - 인프런
SQL 중급 이론을 배우고, 실습 문제를 함께 풀어봅니다. 초급 중급이상 데이터베이스 데이터베이스 데이터 분석 SQL 데이터 분석 온라인 강의 업무에 SQL을 바로 적용할 수 있고 SQL 코딩 테스트도 �
www.inflearn.com
'Database > SQL' 카테고리의 다른 글
[백문이불여일타] 데이터 분석을 위한 고급 SQL - 2부 (0) | 2020.07.21 |
---|---|
[백문이불여일타] 데이터 분석을 위한 고급 SQL - 1부 (0) | 2020.07.17 |
[백문이불여일타] 데이터 분석을 위한 중급 SQL - 3부 (0) | 2020.07.16 |
[백문이불여일타] 데이터 분석을 위한 중급 SQL - 2부 (0) | 2020.07.15 |
[백문이불여일타] 데이터 분석을 위한 중급 SQL - 1부 (0) | 2020.07.15 |