ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [프로그래머스 MySQL,Oracle] - 보호소에서 중성화한 동물
    Data Engineering/MySQL & Oracle 2021. 6. 28. 17:26

     

     

     

    [프로그래머스 JOIN - 보호소에서 중성화한 동물]

     

     

    (MySQL)

    *방법: ANIMAL_INS 기준으로 조인을 해주고, 중성화 여부가 다른 컬럼을 선택한다.

    SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
    FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
    ON A.ANIMAL_ID=B.ANIMAL_ID
    WHERE A.SEX_UPON_INTAKE!=B.SEX_UPON_OUTCOME
    ORDER BY A.ANIMAL_ID

     

     

    (Oracle - JOIN 사용)

    *사실 Oracle과 MySql이 많은 차이가 있는 것은 아니다.

     그래서 Oracle에서 (+) 조인 조건을 한번 사용해보았다.

    SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
    FROM ANIMAL_INS A, ANIMAL_OUTS B
    WHERE A.ANIMAL_ID=B.ANIMAL_ID(+) 
        AND A.SEX_UPON_INTAKE!=B.SEX_UPON_OUTCOME
    ORDER BY A.ANIMAL_ID

     

    (Oracle - INTERSECT 사용)

    SELECT ANIMAL_ID, ANIMAL_TYPE, NAME
    FROM ANIMAL_INS
    WHERE SEX_UPON_INTAKE LIKE 'Intact%'
    INTERSECT
    SELECT ANIMAL_ID, ANIMAL_TYPE, NAME
    FROM ANIMAL_OUTS
    WHERE SEX_UPON_OUTCOME NOT LIKE 'Intact%'

     

     

    <공부>

     

    📍 Oracle

    UNION: 두 테이블의 합집합(중복 허용 안함)

    UNION ALL: 두 테이블의 합집합(중복 허용)

    INTERSECT: 양쪽 테이블에 공통된 행만 출력한다.

    MINUS: 첫번째 테이블 기준으로 두번째 테이블에 있는 행을 제외한다.

     

     

    LIKE : 특정 문자가 포함되어 있는 값을 포함할 경우 사용한다.

    ex) LIKE '%A' : A로 끝나는 모든 단어

    ex) LIKE 'A%' : A로 시작하는 모든 단어

    ex) LIKE '%A%' : A를 포함하는 단어

     

     

     

     

     

    프로그래머스의 JOIN 문제는 문법만 알면 풀기 쉬운 편이다.

    코딩 테스트에 대비해서, 조금 더 어려운 JOIN 문제를 찾아봐야겠다.

     

    댓글

Designed by Tistory.