Algorithms 🚀/HackerRank

[MySQL/해커링크] Placements

728x90

www.hackerrank.com/challenges/placements/problem

 

Placements | HackerRank

Write a query to output the names of those students whose best friends got offered a higher salary than them.

www.hackerrank.com

SQL연습도 하고 MySQL 문법도 익힐겸 SQL 문제를 풀어보려고 합니다 :)

 

이 문제를 간단하게 설명하자면 본인의 월급보다 친구의 월급이 높을 때 그 친구의 이름을 조회하는 문제입니다.

 

저는 2가지 방식으로 풀었습니다.

 

 

1. JOIN만 사용한 방식

SELECT s.name
from STUDENTS s JOIN FRIENDS f ON (s.id = f.id)
JOIN PACKAGES p1 ON (s.id = p1.id)
JOIN PACKAGES p2 ON (f.friend_id = p2.id and p1.salary < p2.salary)
ORDER BY p2.salary;

 

2. JOIN과 WHERE절을 사용한 방식

SELECT s.name
from STUDENTS s JOIN FRIENDS f ON (s.id = f.id)
JOIN PACKAGES p1 ON (s.id = p1.id)
JOIN PACKAGES p2 ON (f.friend_id = p2.id)
WHERE p1.salary < p2.salary
ORDER BY p2.salary;

 

 

728x90