본문 바로가기

방법/알고리즘&코딩 테스트

[Programmers] 오랜 기간 보호한 동물(1) MySQL, Oracle

https://programmers.co.kr/learn/courses/30/lessons/59044

 

코딩테스트 연습 - 오랜 기간 보호한 동물(1)

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

 

Oracle

SELECT NAME, DATETIME
    FROM (
        SELECT ai.NAME, ai.DATETIME 
            FROM ANIMAL_INS ai LEFT JOIN ANIMAL_OUTS ao
                ON (ai.ANIMAL_ID = ao.ANIMAL_ID)
            WHERE ao.ANIMAL_ID IS NULL
            ORDER BY ai.DATETIME
    )
    WHERE ROWNUM <= 3

1. ANIMAL_INS와 ANIMAL_OUTS JOIN하기

 

2. ANIMAL_OUTS의 ANIMAL_ID가 비워져(NULL)인 것 == 아직 입양을 가지 못한 것

 

3. DATETIME을 기준으로 정렬 == 과거 순으로 정렬

 

4. ROWNUM을 이용해 3개까지만 출력

 

 

MySQL

SELECT ai.NAME, ai.DATETIME 
    FROM ANIMAL_INS ai LEFT JOIN ANIMAL_OUTS ao
        ON (ai.ANIMAL_ID = ao.ANIMAL_ID)
    WHERE ao.ANIMAL_ID IS NULL
    ORDER BY ai.DATETIME
    LIMIT 3

1. ANIMAL_INS와 ANIMAL_OUTS JOIN하기

 

2. ANIMAL_OUTS의 ANIMAL_ID가 비워져(NULL)인 것 == 아직 입양을 가지 못한 것

 

3. DATETIME을 기준으로 정렬 == 과거 순으로 정렬

 

4. LIMIT를 이용해 3개까지만 출력