[MySQL] 없어진 기록 찾기

2025. 4. 11. 10:06·코딩테스트/SQL

https://school.programmers.co.kr/learn/courses/30/lessons/59042

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

📚문제

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

 

✏️ 풀이

SELECT O.ANIMAL_ID,O.NAME
FROM ANIMAL_INS I RIGHT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.DATETIME = NULL
ORDER BY 1

 

입양 보낸 정보 테이블로 RIGHT JOIN 을 걸면 입양 보낸 정보 테이블의 정보들이 소멸되지 않고 해당 정보를 기준으로 조회 또는 작업이 가능하다.

RIGHT JOIN 을 기준으로 I.DATETIME 이 NULL 이라면 보호소에 온 적없는 ANIMAL_ID 를 찾아낼 수 있다.

 

의문이 든 점이 RIGHT JOIN 으로 연결한다면  입양을 갔지만 보호소에 들어온 기록이 없는 동물이 ANIMAL_INS 에는 없기때문에 DATETIME 을 기준으로 하지않고 ANIMAL _ID 로 하는것이 더 가독성이 좋지않을까? 생각이 들었다.

SELECT O.ANIMAL_ID,O.NAME
FROM ANIMAL_INS I RIGHT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
WHERE I.ANIMAL_ID IS NULL
ORDER BY 1

 

✒️ 회고

 

- 간단한 문제이긴 하지만 RIGHT,LEFT JOIN 의 개념을 잘 활용해야 풀 수 있는 문제라 블로그에 작성을 해보았다.

 

'코딩테스트 > SQL' 카테고리의 다른 글

[SQL]우유와 요거트가 담긴 장바구니  (0) 2025.05.17
[MySQL]년, 월, 성별 별 상품 구매 회원 수 구하기  (0) 2025.04.14
[MySQL] 즐겨찾기가 가장 많은 식당 정보 출력하기  (0) 2025.04.10
[Mysql] 가격대 별 상품 개수 구하기  (0) 2025.04.07
[SQL]NULL 처리하기  (0) 2025.03.07
'코딩테스트/SQL' 카테고리의 다른 글
  • [SQL]우유와 요거트가 담긴 장바구니
  • [MySQL]년, 월, 성별 별 상품 구매 회원 수 구하기
  • [MySQL] 즐겨찾기가 가장 많은 식당 정보 출력하기
  • [Mysql] 가격대 별 상품 개수 구하기
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • JavaScript (8)
      • SQL (11)
      • 코딩테스트 (30)
        • Java (15)
        • SQL (13)
      • Java (10)
      • 프로젝트 (30)
        • 트러블슈팅 (10)
        • 프로젝트 회고 (18)
      • git,Github (2)
      • TIL (38)
      • Spring (20)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java #arraylist #list #배열
    스파르타 코딩 #부트캠프 #첫ot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[MySQL] 없어진 기록 찾기
상단으로

티스토리툴바