문제 링크
https://leetcode.com/problems/employees-earning-more-than-their-managers/
문제는 간단하다. 자신의 봉급이 자신의 매니저보다 높은 사람들 모두 출력하는 것이다.
내 풀이
SELECT Name as Employee
FROM
(SELECT
E.Name,
E.Salary as E_Salary,
M.Salary as M_Salary
FROM Employee AS E
LEFT JOIN Employee as M
ON E.ManagerId = M.Id
) AS sub
WHERE E_Salary > M_Salary
자신의 매니저의 봉급 데이터를 별도로 붙여서, 가져와야 한다. 이때 주의 사항이, ON을 어떻게 하냐인 부분인데, 자신의 매니저와 실제 매니저 정보를 연결해야 하므로 ON이 저렇게 나온 것이다.
그 런 데
다른 풀이
# Write your MySQL query statement below
SELECT E.Name as Employee
FROM Employee as E, Employee as M
WHERE E.ManagerId = M.Id AND E.Salary > M.Salary
JOIN을 안쓰고도 복수 테이블을 그냥 조회해버릴 수가 있었다.,,,
'SQL' 카테고리의 다른 글
[SQL] 해커랭크 Occupations 풀이 (0) | 2021.09.22 |
---|---|
[SQL] 프로그래머스 입양시각 구하기 (2) (0) | 2021.09.21 |
[SQL] HackerRank - Contest Leaderboard (0) | 2021.09.01 |
[DB] 트랜잭션이란? (0) | 2021.08.24 |
[DB] 인덱스 간단히 개념잡기 (0) | 2021.08.23 |