
(
SELECT *
FROM products
ORDER BY price DESC
LIMIT 4;
)
UNION
(
SELECT *
FROM priducts
ORDER BY price / wright DESC
LIMIT 4;
);
두 개의 쿼리를 괄호로 묶고 UNION 키워드로 합친다. 각 쿼리의 결과가 하나로 합쳐지고 중복은 허용되지 않는다(마치 Set)
(
SELECT *
FROM products
ORDER BY price DESC
LIMIT 4;
)
UNION ALL
(
SELECT *
FROM priducts
ORDER BY price / wright DESC
LIMIT 4;
);
두 가지 쿼리의 결과를 합치는데 union과 다른 점은 중복을 허용한다.
☝합치는 두 결과 테이블의 컬럼들의 이름과 데이터타입이 같아야한다.
(
SELECT *
FROM products
ORDER BY price DESC
LIMIT 4;
)
INTERSECT
(
SELECT *
FROM priducts
ORDER BY price / wright DESC
LIMIT 4;
);
두 쿼리의 결과를 비교하고 같은 값을 가지는 열을 가져온다. 그때 중복 없이 어떤 열이 중복되는지 1번만 보여준다.
(
SELECT *
FROM products
ORDER BY price DESC
LIMIT 4;
)
INTERSECT ALL
(
SELECT *
FROM priducts
ORDER BY price / wright DESC
LIMIT 4;
);
두 쿼리의 결과를 비교하고 중복인 열을 보여주는데, 중복인 모든 열을 보여준다. 같은 값의 열이 3번 중복되어도 3개의 열 모두 보여준다.
(
SELECT *
FROM products
ORDER BY price DESC
LIMIT 4;
)
EXCEPT
(
SELECT *
FROM priducts
ORDER BY price / wright DESC
LIMIT 4;
);
위의 쿼리의 결과를 가지고 아래 쿼리와 비교해서 중복되는 열을 제거하고 나머지 결과 테이블을 보여준다. 아래 쿼리는 비교만 하고 결과 테이블에 영향을 주지 않는다