MySQL - UNION, JOIN

김혜령·2024년 2월 6일
0

MySQL

목록 보기
5/14
post-thumbnail

UNION

여러 개의 SQL문을 합쳐서 하나의 SQL문으로 만들어주는 방법
*column의 개수가 같아야 함

select column1, column2, ... from table1
union | union all
select column1, column2, ... from table2;

  • union : 중복된 값을 제거하여 알려준다.
  • union all : 중복된 값도 모두 보여준다.
    * column의 개수만 맞춘다고 해서 내가 원하는 데이터 결과가 나오는 것은 아니다. (직업에 생년월일 데이터가 들어감)

JOIN

두 개 이상의 테이블을 결합하는 것

  • INNER JOIN
    : 두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인방식

    select column1, column2, ...
    from table1
    inner join table2
    on table1.column = table2.column
    where conditon;

  • LEFT JOIN
    : 두 개의 테이블에서 공통영역을 포함해 왼쪽 테이블의 다른 데이터를 포함하는 조인방식
    *오른쪽 테이블에 없는 값은 NULL 처리

    select column1, column2, ...
    from table1
    left join talbe2
    on table1.column = table2.column
    where condition;

  • RIGHT JOIN
    : 두 개의 테이블에서 공통영역을 포함해 오른쪽 테이블의 다른 데이터를 포함하는 조인방식
    *왼쪽 테이블에 없는 값은 NULL 처리

    select column1, column2, ...
    from table1
    right join talbe2
    on table1.column = table2.column
    where condition;

  • FULL OUTER JOIN
    : 두개의 테이블에서 공통영역을 포함하여 양쪽 테이블의 다른영역을 모두 포함하는 조인방식

    select column1, column2, ...
    from table1
    full outer join talbe2
    on table1.column = table2.column
    where condition;

    *mysql에서는 지원하지 않는 문법이기 때문에 다음과 같은 쿼리로 실행

    select column1, column2, ...
    from table1
    left join table2 on table1.column = table2.column
    union
    select column1, column2, ...
    from table1
    right join table2 on table1.column = table2.column
    where condition;

  • SELF JOIN
    : join문을 사용하지 않고 where절에 기준을 명시하는 조인방식

    select column1, column2, ...
    from table1, table2, ...
    where condition;

    ex) celeb 테이블의 연예인 중, snl_show에 host로 출연했고 소속사가 안테나인 사람의 이름과 직업을 검색

    select celeb.name, celeb.job_title
    from celeb, snl_show
    where celeb.name = snl_show.host and celeb.agency = '안테나';

0개의 댓글