[mysql/oracle] 오랜 기간 보호한 동물(1)
2023. 7. 5. 23:51ㆍProgrammers/SQL
문제 설명
문제
결과
mysql - 처음 코드
1
2
3
4
5
|
SELECT NAME, DATETIME
FROM ANIMAL_INS
WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_OUTS)
ORDER BY DATETIME
LIMIT 3
|
cs |
ANIMAL_OUTS에 없는 동물을 뽑기 위해 서브쿼리를 사용했는데
사실 join이라는 카테고리에는 적합하지 않다
ANIMAL_INS에 있는 동물 중 ANIMAL_OUTS에는 없는 동물을 뽑으면 되므로
LEFT JOIN을 걸고 OUTS 테이블쪽 데이터를 null 처리하면 된다,
정답코드
1
2
3
4
5
6
|
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME
LIMIT 3
|
cs |
oracle
1
2
3
4
5
6
7
8
9
|
SELECT A.NAME, A.DATETIME
FROM(
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME
) A
WHERE ROWNUM <= 3
|
cs |
'Programmers > SQL' 카테고리의 다른 글
[mysql/oracle] 오랜 기간 보호한 동물(2) (0) | 2023.07.27 |
---|---|
[mysql/oracle] 없어진 기록 찾기 (0) | 2023.07.10 |
[mysql/oracle] 있었는데요 없었습니다 (0) | 2023.07.05 |
[mysql/oracle] 상품 별 오프라인 매출 구하기 (0) | 2023.05.18 |
[mysql/oracle] 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2023.02.09 |