JOIN 연산을 통해 세 테이블을 연결해야 하는데, 다음과 같은 순서로 연산을 수행했다.
[1] 각 학생의 급여를 구한다. (JOIN Packages AS P_M ON S.ID = P_M.ID)
[2] 각 학생의 친구를 구한다. (JOIN Friends AS F ON S.ID = F.ID)
[3] 친구의 급여를 구한다. (JOIN Packages AS P_F ON F.Friend_ID = P_F.ID)
이후 WHERE 절을 통해 '학생 급여 < 친구 급여'를 만족하는 데이터만 필터링하고, 친구 급여를 출력하면 된다.
SELECT
S.Name
FROM
Students AS S
JOIN Packages AS P_M ON S.ID = P_M.ID
JOIN Friends AS F ON S.ID = F.ID
JOIN Packages AS P_F ON F.Friend_ID = P_F.ID
WHERE
P_M.Salary < P_F.Salary
ORDER BY
P_F.Salary ASC;