하루에 하나씩 공부하기
[해커랭크-Advanced Join] Placements 본문
- 문제
테이블 3개 주어지고, 친구보다 샐러리 낮은 사람 이름 출력하기
- 키포인트
테이블 조인하는 방법
- 쿼리
WITH FRIE AS (
SELECT F.ID, P.SALARY AS FS
FROM FRIENDS F JOIN PACKAGES P
ON F.FRIEND_ID=P.ID
)
SELECT NAME
FROM STUDENTS S JOIN PACKAGES P ON S.ID=P.ID JOIN FRIE F ON S.ID=F.ID
WHERE P.SALARY<F.FS
ORDER BY F.FS;
친구 봉급을 저장해놓은 CTE 생성
- 다른 풀이
select a.name
from students a
inner join friends b on a.id = b.id
inner join packages c on a.id = c.id
inner join packages d on b.friend_id = d.id
where c.salary < d.salary
order by d.salary
직관적으로 테이블 조인