[손에 잡히는 10분 SQL - 벤 포터 지음, 박남혜 옮김] 책의 학습 후 정리자료입니다.
UNION 연산자를 이용하면 SQL 쿼리를 결합할 수 있다.Illinois, Indiana, Michigan 에 있는 고객에 대해 보고해야 한다.SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')

State)에 관계없이 Fun4All 고객을 포함해야 한다.SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4All'

SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4All';

SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI') OR cust_name = 'Fun4All';

UNION ALL을 쓰면 된다.SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION ALL
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4All';

SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4All'
ORDER BY cust_name, cust_contact;

Orderitems 테이블에서 제품 ID(prod_id)와 수량을 가져오기 위해 두 개의 SELECT 문을 결합하는 SQL 문을 작성하라. 하나는 BNBG로 시작하는 SELECT 문이고 다른 하나는 수량이 딱 100인 제품만 가져오는 SELECT 문이다. 제품 ID로 정렬한다.SELECT prod_id, quantity
FROM OrderItems
WHERE prod_id LIKE 'BNBG%'
UNION
SELECT prod_id, quantity
FROM OrderItems
WHERE quantity = 100;
ORDER BY prod_id

SELECT prod_id, quantity
FROM OrderItems
WHERE prod_id LIKE 'BNBG%' OR quantity = 100;

Products 에 있는 제품명(prod_name)과 Customers 에 있는 고객명(cust_name)을 결합하여 가져오는 SQL 문을 작성하라. 그 결과를 제품명으로 정렬한다.SELECT prod_name
FROM Products
UNION
SELECT cust_name
FROM Customers
ORDER BY prod_name;

SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state = 'MI'
ORDER BY cust_name
UNION
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state = 'IL'
ORDER BY cust_name;
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state = 'MI'
UNION
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state = 'IL'
ORDER BY cust_name;
