여러개의 sql 문을 합쳐서 하나의 sql 문으로 만들어주는 방법
주의. column의 개수가 같아야함
select column1, column2... from table A
union \ union all
select column1, column2,... from tableB
;
직업이 가수를 포함하는 데이터를 검색하는 쿼리와
직업이 텔런트를 포함하는 데이터를 검색하는 쿼리를 중복을 제거하여 합쳐서 실행해 주세요
성이 이씨인 데이터를 검색하는 쿼리와 1970년대 생을 검색하는 쿼리를 중폭을 포함하여 합쳐서 실행해 주세요
두 개 이상의 테이블을 결합하는 것
select column1, column2,...
from tableA
inner join tableB
on tableA.column = tableB.column
where conditon
;
test show에 호스트로 출연한 test 인물을 기준으로 test테이블과 test_show 테이블을 inner join
select column1, column2...
from tableA, tableB,...
where condition
;
test 테이블 중, test_show에 host로 출연했고, 소속사가 안테나인 사람의 이름과 직업을 검색
test 중 test_show 에 host 로 출연했고, 영화배우는 아니면서 YG 엔터테이먼트 소속이거나 40세 이상이면서 YG엔터테이먼트 소속이 아닌 연예인의 이름과 나이, 직업, 소속사, 시즌 에피소드 정보를 검색
test_show에 출연한 사람의 test_show id, 시즌, 에피소드, 이름, 직업 정보 검색
test_show에 출연한 사람 중, 에피소드 7,9,10 중에 출연했거나 소속사가 YG로 시작하고, 뒤에 6글자로 끝나는 사람 중 작년 9월 15일 이후에 출연했던 사람을 검색
두개의 테이블에서 공통영역을 포함하여 양쪽 테이블의 다른 영역을 모두 포함하는 조인방식
select column1, column2,...
from tableA
full outer join tableB
on tableA.column = tableB.column
where condition
;
❗❗❗그런데. my sql에서는 full join을 지원하지 않음
따라서 아래와 같이 쿼리를 쓰면 동일한 결과를 얻을 수 있음
select column1, column2,...
from tableA
left join tableB on tableA.column = tableB.column
union
select column1, column2,...
from tableA
right join tableB on tableA.column = tableB.column
where condition
;
두 개의 데이터테이블에서 공통영역을 포함해 왼쪽 테이블의 다른 데이터를 포함하는 조인방식
select column1, column2,...
from tableA
left join tableB
on tableA.column = tableB.column
where condition
;
두개의 테이블에서 공통영역을 포함해 오른쪽 테이블의 다른 데이터를 포함하는 조인 방식
select column1, column2,...
from tableA
right join tableB
on tableA.column = tableB.column
where condition
;
잘 읽었습니다. 좋은 정보 감사드립니다.