여러 개의 SQL문을 합쳐서 하나의 SQL 문으로 만들어주는 방법
SELECT column1, column2, ... FROM tableA
UNION | UNION ALL
SELECT column1, column2, ... FROM tableB;
test1 의 모든 데이터와 test2 의 모든 데이터를 중복된 값을 포함하여 검색
SELECT * FROM table1
UNION ALL
SELECT * FROM table2;
test1 의 모든 데이터와 test2 의 모든 데이터를 중복된 값을 제거하여 검색
SELECT * FROM table1
UNION
SELECT * FROM table2;
성별이 여자인 데이터를 검색하는 쿼리와 소속사가 YG엔터테이먼트인 데이터를 검색하는 쿼리를 UNION ALL 로 실행
SELECT name, sex, agency FROM celeb WHERE sex='F'
SELECT name, sex, agency FROM celeb WHERE agency='YG엔터테이먼트';
SELECT name, sex, agency FROM celeb WHERE sex='F'
UNION ALL
SELECT name, sex, agency FROM celeb WHERE agency='YG엔터테이먼트';
성별이 여자인 데이터를 검색하는 쿼리와 소속사가 YG엔터테이먼트인 데이터를 검색하는 쿼리를 UNION 으로 실행
SELECT name, sex, agency FROM celeb WHERE sex='F'
SELECT name, sex, agency FROM celeb WHERE agency='YG엔터테이먼트';
SELECT name, sex, agency FROM celeb WHERE sex='F'
UNION
SELECT name, sex, agency FROM celeb WHERE agency='YG엔터테이먼트';
가수가 직업인 연예인의 이름, 직업을 검색하는 쿼리와, 1980년대에 태어난 연예인의 이름, 생년월일, 나이를 검색하는 쿼리를 UNION으로 실행
내가 쓴 답)
select name, job_title from celeb where job_title like '%가수%'
union
select name, birthday, age from celeb where birthday between 1980-01-01 and 1989-12-31;
오답!-에러가 나는 건 맞음(따옴표 때문에 틀림)
답)
select name, job_title from celeb where job_title like '%가수%'
union
select name, birthday, age from celeb where birthday between '1980-01-01' and '1989-12-31';
가수가 직업인 연예인의 이름, 직업을 검색하는 쿼리와,
1980년대에 태어난 연예인의 이름, 생년월일, 나이를 검색하는 쿼리를 UNION으로 실행
SELECT name, job_title
FROM celeb
WHERE job_title LIKE '%가수%';
가수가 직업인 연예인의 이름, 직업을 검색하는 쿼리와, 1980년대에 태어난 연예인의 이름, 생년월일, 나이를 검색하는 쿼리를 UNION으로 실행
SELECT name, birthday, age
FROM celeb
WHERE birthday BETWEEN '1980-01-01' AND '1989-12-31';
가수가 직업인 연예인의 이름, 직업을 검색하는 쿼리와,
1980년대에 태어난 연예인의 이름, 생년월일, 나이를 검색하는 쿼리를 UNION으로 실행
SELECT name, job_title FROM celeb WHERE job_title LIKE '%가수%'
UNION
SELECT name, birthday, age FROM celeb
WHERE age BETWEEN '1980-01-01' AND '1989-12-31';
내가 쓴 답)
select name, job_title from celeb where job_title like '%가수%'
union
select name, job_title from celeb where job_title like '%텔런트%';
정답!
내가 쓴 답)
select name, birthday from celeb where name like '이%'
union all
select name, birthday from celeb where birthday between '1970-01-01' and '1979-12-31';
정답!