프로그래머스 ORACLE 있었는데요 없었습니다DB/쿼리 문제풀이2023. 10. 6. 15:05
Table of Contents
-보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.
내가 한거
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_OUTS A
INNER JOIN ANIMAL_INS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.DATETIME < B.DATETIME
ORDER BY B.DATETIME
다른 사람 코드
📌암시적인 내부 조인 (implicit inner join)
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE A.ANIMAL_ID = B.ANIMAL_ID
AND A.DATETIME > B.DATETIME
ORDER BY A.datetime ;
- 이 쿼리에서 ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블의 조인은 WHERE 절에 조인 조건을 명시하여 이루어집니다.
- SQL에서 FROM 절에서 여러 테이블을 열거하면, 해당 테이블들 사이에서 조인이 발생합니다. WHERE 절에서 조인 조건을 명시하여 어떤 행들이 결합될지를 지정하는 것입니다.
- 따라서 **A.ANIMAL_ID = B.ANIMAL_ID AND A.DATETIME > B.DATETIME**라는 조건이 WHERE 절에 있기 때문에 ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블의 레코드가 이 조건에 부합하는 경우에만 결과에 나타나게 됩니다. 이는 내부 조인의 결과로 해당 조건을 만족하는 행들만 선택되어 표시되게 됩니다.
- 실제로 이 쿼리는 내부 조인이 발생하며, 조인 조건에 따라 조합되는 행들이 결과로 표시됩니다. 따라서 "JOIN" 키워드를 사용하지 않아도 WHERE 절에 조인 조건을 명시하면 조인이 발생합니다.
'DB > 쿼리 문제풀이' 카테고리의 다른 글
프로그래머스 ORACLE 보호소에서 중성화한 동물 (0) | 2023.10.06 |
---|---|
프로그래머스 ORACLE 오랜 기간 보호한 동물(1) (0) | 2023.10.06 |
프로그래머스 ORACLE 없어진 기록 찾기 (0) | 2023.10.06 |
프로그래머스 ORACLE 상품 별 오프라인 매출 구하기 (0) | 2023.10.06 |
프로그래머스 ORACLE 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2023.10.06 |