본문 바로가기
Language/DB

[Programmers | SQL | JOIN 문제 풀이] 있었는데요 없었습니다 - Solution with JOIN & DATETIME 비교

by ㅇ달빛천사ㅇ 2024. 7. 2.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | SQL CODEKATA

🫥 있었는데요 없었습니다

🏷 관련 주제 : JOIN DATETIME 날짜 비교




✔️ (Oracle & MySQL) Solution with JOIN & DATETIME 비교

SELECT I.ANIMAL_ID
       , I.NAME
FROM ANIMAL_INS I
     , ANIMAL_OUTS O
WHERE I.ANIMAL_ID = O.ANIMAL_ID
      AND O.DATETIME < I.DATETIME
ORDER BY I.DATETIME ASC;
실행 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

📌 오늘 만난 문제 : 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.


1. 동물의 아이디JOIN하여 아이디, 이름, 보호 시작일, 입양일을 조회하자.

ANIMAL_INSDATETIME 칼럼에 별칭을 "보호 시작일"
ANIMAL_OUTSDATETIME칼럼에 별칭을 "입양일"이라고 주자.

  • Oracle & MySQL
    SELECT I.ANIMAL_ID
           , I.NAME
           , I.DATETIME "보호 시작일"
           , O.DATETIME "입양일"
    FROM ANIMAL_INS I
         , ANIMAL_OUTS O
    WHERE I.ANIMAL_ID = O.ANIMAL_ID;
    실행 결과

2. 입양일보호 시작일보다 빠른 인스턴스를 조회하자.

  • Oracle & MySQL
    SELECT I.ANIMAL_ID
           , I.NAME
           , I.DATETIME "보호 시작일"
           , O.DATETIME "입양일"
    FROM ANIMAL_INS I
         , ANIMAL_OUTS O
    WHERE I.ANIMAL_ID = O.ANIMAL_ID
          AND O.DATETIME < I.DATETIME;
    실행 결과

3. 위의 조회 결과에서  동물의 아이디이름만 조회하자.

  • Oracle & MySQL
    SELECT I.ANIMAL_ID
           , I.NAME
    FROM ANIMAL_INS I
         , ANIMAL_OUTS O
    WHERE I.ANIMAL_ID = O.ANIMAL_ID
          AND O.DATETIME < I.DATETIME;
    실행 결과

4. 보호 시작일을 기준으로 오름차순 정렬하자.

  • Oracle & MySQL
    SELECT I.ANIMAL_ID
           , I.NAME
    FROM ANIMAL_INS I
         , ANIMAL_OUTS O
    WHERE I.ANIMAL_ID = O.ANIMAL_ID
          AND O.DATETIME < I.DATETIME
    ORDER BY I.DATETIME ASC;
    실행 결과

💬 무엇을 새롭게 알았는지

DATETIME형의 데이터를 비교 연산자로 비교할 수 있다.







728x90


Top