[60] 부트캠프 TIL - 본캠프 42일차

2024. 10. 22. 23:48부트캠프 TIL

728x90

1. 프로그래머스 사용

1-1)  sql 문제 : 없어진 기록찾기 Lv3

ㄴ 문제 : 일부 데이터가 유실이 되었습니다. 입양을 간 기록은 있으나 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID순으로 조회하는 SQL문을 작성해주세요.

 

 

 

문제풀이)

1) 문제를 읽고 필요한 조건들을 체크한다

- 조회할컬럼체크, ANIMAL_INS 테이블에 없는 ID데이터 찾기, ID기준 오름차순

 

2) 테이블 2개에서 참조할 컬럼을 체크한다

- PRODUCT_ID(식품ID)

 

3) 1,2번을 토대로 쿼리문을 작성한다.

- 처음부터 놓친부분은 없는지 찾아서 진행하면 좋지만, 디버깅 하듯이 작성한 쿼리를 실행하는 시행착오를 진행

 

4) id가 없는 쿼리

- 각 테이블마다 ANIMAL_ID 기준으로 조회해서 데이터가 다른 부분은 확인했으나, 한 쿼리로 해당부분을 한번에 없는 데이터들을 조회해야한다.

- *로 전체 데이터를 먼저 조회해서 확인하는게 좋다.
SELECT * FROM ANIMAL_OUTS a LEFT JOIN ANIMAL_INS b ON a.ANIMAL_ID = b.ANIMAL_ID - 해당쿼리로 조회

- 딱이렇게 비어있는 데이터를 확인할 수 있다.
- a로 참조한 ANIMAL_OUTS은 ID가 다 있고, b로 참조한 ANIMAL_INS은 id가 비었기 때문에  
ANIMAL_INS의 ANIMAL_ID 로 IS NULL 조건을 주면된다.

 

5) 최종 완성 쿼리문

- SELECT a.ANIMAL_ID, a.NAME 
FROM ANIMAL_OUTS a LEFT JOIN ANIMAL_INS b ON a.ANIMAL_ID = b.ANIMAL_ID
WHERE b.ANIMAL_ID IS NULL
ORDER BY a.ANIMAL_ID ASC

 

728x90