ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL) union
    SQL 2023. 3. 16. 02:41
    UNION: 중복된 값을 제거하여 알려줌
    UNION ALL: 중복된 값도 모두 보여줌
    SELECT column1, column2, ... from tableA
    UNION | UNION ALL
    SELECT column1, column2, ... from tableB;

    💥가져오는 컬럼의 수가 같아야 함

    JOIN : 두 개 이상의 테이블 결합

     

    - INNER JOIN 

    SELECT column1, column2, ...
    FROM tableA
    INNER JOIN tableB
    ON tableA.column = tableB.column
    WHERE condition;

    🔔 snl_show 에 호스트로 출연한 celeb을 기준으로 celeb 테이블과 snl_show 테이블을 inner join

    SELECT celeb.id, celeb.name, snl_show.id, snl_show.host
    FROM celeb
    INNER JOIN snl_show
    ON celeb.name = snl_show.host;

    - LEFT JOIN

    SELECT column1, column2, ...
    FROM tableA
    LEFT JOIN tableB
    ON tableA.column = tableB.column
    WHERE condition;

    - RIGHT JOIN

    SELECT column1, column2, ...
    FROM tableA
    RIGHT JOIN tableB
    ON tableA.column = tableB.column
    WHERE condition;

    - FULL OUTER JOIN(My SQL에서 지원X)

     

    SELECT column1, column2, ...
    FROM tableA
    FULL OUTER JOIN tableB
    ON tableA.column = tableB.column
    WHERE condition;

    💥My SQL에서 사용법

    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;

    - SELF JOIN (INNER JOIN과 같은 결과)

    SELECT column1, column2, ...
    FROM tableA, tableB,...
    WHERE condition;

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

    SELECT celeb.name, celeb.job_title
    FROM celeb, snl_show
    WHERE celeb.name snl_show.host AND celeb.agnecy='안테나';

    🔔 celeb 테이블의 연예인 중, snl_show에 host로 출연했고, 영화배우는 아니면서 yg엔터테인먼트 소속이거나 40세 이상이면서 yg엔터테인먼트 소속이 아닌 연예인의 이름, 나이, 직업,소속사, 시즌, 에피소드 검색

    SELECT celeb.name, celeb.age, celeb.job_title, celeb.agency, snl_show.season, snl_show.episode
    FROM celeb, snl_show
    WHERE celeb.name = snl_show.host
    AND ((NOT job_title LIKE "%영화배우%" AND agnecy = "YG엔터테인먼트")
    OR (age>=40 AND agnecy != "YG엔터테인먼트"));

    🔔 snl_show에 출연한 celeb 중, 에피소드 7, 9, 10 중에 출연했거나 소속사가 YG로 시작하는 사람 중, 작년 9월 15일 이후에 출연했던 사람 검색

    SELECT * FROM celeb, snl_show
    WHERE celeb.name = snl_show.host
    AND (episode in(7, 9, 10) or agency like "YG%")
    AND broadcast_date > '2020-09-15';

     

    댓글

binlog