SELECT ID FROM ECOLI_DATA WHERE PARENT_ID IN ( SELECT ID FROM ECOLI_DATA WHERE PARENT_ID IN ( SELECT ID FROM ECOLI_DATA WHERE PARENT_ID IS NULL ) ) ORDER BY ID해당 문제에서 포인트는 중첩 서브 쿼리 였다.
"WHERE / HAVING (조건 절)에 사용되는 서브쿼리" 를 칭함
- 서브쿼리의 결과에 따라 달라지는 조건 절
- (비) 상관 서브쿼리 개념
구분 설명 상관 서브쿼리메인 쿼리의 컬럼을 참조하여, 각 행마다 반복 실행 '비상관 서브쿼리' 메인 쿼리와 독립되어, 먼저 실행 후 결과를 메인 쿼리에 전달 쉽게 말해서,
상관 서브쿼리는 메인 쿼리없이 동작이 불가한 서브 쿼리이며,
비상관 서브쿼리는 메인 쿼리없이도 동작이 가능한 서브 쿼리다.해당 문제에서 반복적으로 결과 값을 추출,
원하는 최종 결과 값을 메인 쿼리에 사용할 수 있도록 하는 것이 관건이었다.
도저히 모르겠다. 확인해보니 LV5 문제라 추후 재시도 예정...
SELECT ID, LENGTH FROM FISH_INFO ORDER BY LENGTH DESC, ID ASC LIMIT 10오랜만의 쉬운 문제로 숨통이 트였다.
해당 문제에서 포인트는 LIMIT 구문 이었다.
"표기되는 출력의 행 표기를 제한하는 구문"
- 실무) 쿼리를 날릴 때 자원 관리를 위해 사용
SELECT COUNT(a.ID) AS FISH_COUNT FROM ( SELECT A.ID, A.FISH_TYPE, B.FISH_NAME FROM FISH_INFO AS A LEFT JOIN FISH_NAME_INFO AS B ON A.FISH_TYPE = B.FISH_TYPE ) a WHERE a.FISH_NAME IN ('BASS','SNAPPER')한 번에 쿼리를 날려 성공했다..
해당 문제에서 포인트는 JOIN, 서브쿼리 였다.
1) LEFT JOIN 을 통해 A 테이블 기준 공통 컬럼으로 결합하고,
2) 서브 쿼리화
3) 서브 쿼리에서 생성된 테이블(a)를 이용해 조건 절을 통한 원하는 값 출력