-
<프로그래머스> 없어진 기록 찾기코딩테스트/SQL 코딩테스트 2023. 12. 21. 21:43
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59042
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 문제 요구사항
- 일부 데이터의 유실을 가정함
- 입양을 간 기록은 있는데, 보호소에 들어온 기록은 없는 동물의
- ID와 이름을 ID순으로 조회
- + 조회 시 이름이 없는(NULL) 데이터가 조회 될 경우 오답처리 나서 없앴음
간 기록은 있는데 들어온 기록은 없는 경우 OUTER JOIN으로 문제를 해결할 수 있다.
INS 테이블에 OUTS 테이블을 RIGHT OUTER JOIN 하면 입양 간 기록은 있는데 보호소에 들어온 기록이 없는 데이터까지 확인할 수 있다 해당 값이 NULL로 표기 되기 때문이다
따라서 WHERE 절에 INS테이블의 데이터 칼럼 중 하나를 골라 NULL인 경우를 조건으로 하여 조회하면
원하는 결과를 얻을 수 있다.
1) Oracle
SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS I RIGHT OUTER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE I.NAME IS NULL AND O.NAME IS NOT NULL ORDER BY O.ANIMAL_ID
2) MySQL
SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS I RIGHT OUTER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE I.NAME IS NULL AND O.NAME IS NOT NULL ORDER BY O.ANIMAL_ID
'코딩테스트 > SQL 코딩테스트' 카테고리의 다른 글
<프로그래머스> 재구매가 일어난 상품과 회원 리스트 구하기 (0) 2023.12.21 <프로그래머스> 과일로 만든 아이스크림 고르기 (2) 2023.12.21 <프로그래머스> 최댓값 구하기 (1) 2023.12.21 <프로그래머스> 5월 식품들의 총매출 조회하기 (1) 2023.12.21 <프로그래머스> 식품분류별 가장 비싼 식품의 정보 조회하기 (1) 2023.12.21 - 문제 요구사항