https://programmers.co.kr/learn/courses/30/lessons/59044
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개까지만 출력
반응형
'방법 > 알고리즘&코딩 테스트' 카테고리의 다른 글
[Programmers] 입양 시각 구하기(2) Oracle (0) | 2020.07.24 |
---|---|
[Programmers] 보호소에서 중성화한 동물 Oracle (0) | 2020.07.24 |
[Programmers] 오랜 기간 보호한 동물(2) MySQL, Oracle (0) | 2020.07.21 |