Chapter 09. JOIN

13elieve ·2024년 6월 24일

제로베이스 DA7

목록 보기
10/12

<실습환경>

1. JOIN

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

  1. INNER JOIN : 두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인방식
MYSQL > SELECT column1, column2,…
      > FROM tableA
      > INNER JOIN tableB
      > ON tableA.column = tableB.column
      > WHERE condition;

두 개 이상의 TABLE을 쓸 경우 COLUMN에 TABLE을 명시할 것
(Ex TABLE.COLUMN -> celeb.id, celeb.name)

  1. LEFT JOIN

    두 개의 테이블에서 공통영역을 포함해 왼쪽 테이블의 다른 데이터를 포함하는 조인방식

MYSQL > SELECT column1, column2,…
      > FROM table A
      > LEFT JOIN table B
      > ON tableA.column = tableB.column
      > WHERE condition;

  1. RIGHT JOIN

    두 개의 테이블에서 공통영역을 포함해 오른쪽 테이블의 다른 데이터를 포함하는 조인방식

MYSQL > SELECT column1, column2,…
      > FROM table A
      > RIGHT JOIN table B
      > ON tableA.column = tableB.column
      > WHERE condition;

(추가) 다른 데이터가 포함되면서 이외의 테이블에서 데이터가 없을 시 NULL로 표시됨

  1. FULL OUTER JOIN (MYSQL에서는 실행 X)
    두 개의 테이블에서 공통영역을 포함해 모든 테이블의 데이터를 포함하는 조인방식
		(FULL OUTER JOIN을 지원하는 DBMS의 경우)

MYSQL > SELECT column1, column2,…
      > FROM table A
      > FULL OUTER JOIN table B
      > ON tableA.column = tableB.column
      > WHERE condition;
		(MYSQL의 경우)
        
MYSQL > SELECT column1, column2,…
      > FROM table A
      > LEFT JOIN table B
      > ON tableA.column = tableB.column
      > UNION
      > SELECT column1, column2,…
      > FROM table A
      > RIGHT JOIN table B
      > ON tableA.column = tableB.column

  1. SELF JOIN (가장 많이 사용되는 문법)
    INNER JOIN과 같은 효과를 내는 JOIN 방식
    - 실습해보니까 JOIN 쿼리를 먼저 1차로 완성하고
    조건 WHERE절을 AND, OR 등을 사용해서 추가하는 방법이 쉬움
    - AND, OR 할때는 반드시 괄호를 사용하는 편이 좋음
MYSQL > SELECT column1, column2,…
      > FROM tableA, tableB, …
      > WHERE condition

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

(2) snl_show 에 출연한 celeb 중, 에피소드 7, 9, 10 중에 출연했거나 소속사가 YG로 시작하고 뒤에 6글자로 끝나는 사람 중 작년 9월 15일 이후에 출연했던 사람을 검색

(3) snl_show에 출연한 celeb 테이블의 연예인 중, 영화배우나 텔런트가 아닌 연예인의 아이디, 이름, 직업, 시즌, 에피소드 정보를 검색

(4) snl_show에 출연한 celeb 중, 작년 9월 15일 이후에 출연했거나
소속사 이름이 ‘엔터테이먼트’로 끝나지 않으면서 영화배우나 개그맨이 아닌 연예인의 celeb id, 이름, 직업, 소속사를 검색

profile
데분호소인

0개의 댓글