있었는데요 없었습니다

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블의 ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키입니다.

관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.

있었는데요 없었습니다Lv.3

59043

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

해설

ANIMAL_INS와 ANIMAL_OUTS를 사용하여 조인하고, 문제 요구 사항에 맞춰 결과를 필터링하고 정렬하는 쿼리문입니다.

  • Name
    SELECT ANIMAL_INS.ANIMAL_ID, ANIMAL_INS.NAME
    Type
    Description

    쿼리 결과로 반환될 열을 선택합니다.

  • Name
    LEFT JOIN ANIMAL_OUTS ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID
    Type
    Description

    ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블을 조인하고 있습니다. 두 테이블을 ANIMAL_ID 열을 기준으로 연결합니다. 이 조인은 ANIMAL_INS 테이블의 각 행에 대해 해당 ANIMAL_ID와 일치하는 ANIMAL_OUTS 테이블의 행을 연결합니다.

  • Name
    WHERE ANIMAL_INS.DATETIME > ANIMAL_OUTS.DATETIME
    Type
    Description

    조건을 지정하는 부분입니다. 여기서는 ANIMAL_INS 테이블의 DATETIME 값이 ANIMAL_OUTS 테이블의 DATETIME 값보다 큰 경우만 선택합니다. 즉, 보호 시작일(DATETIME)보다 입양일(DATETIME)이 더 빠른 경우를 필터링합니다.

  • Name
    ORDER BY ANIMAL_INS.DATETIME ASC
    Type
    Description

    문제 요구 사항에 맞춰, ANIMAL_INS 테이블의 DATETIME 열을 오름차순(ASC)으로 정렬합니다.

보호 시작일보다 입양일이 빠른 동물의 아이디(ANIMAL_ID)와 이름(NAME)을 찾고, 이를 보호 시작일이 빠른 순서로 정렬하여 반환합니다.

있었는데요 없었습니다

SELECT
    ANIMAL_INS.ANIMAL_ID,
    ANIMAL_INS.NAME
FROM
    ANIMAL_INS
LEFT JOIN
    ANIMAL_OUTS
ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID
WHERE
    ANIMAL_INS.DATETIME > ANIMAL_OUTS.DATETIME
ORDER BY
    ANIMAL_INS.DATETIME ASC;