본문 바로가기

SQL/LeetCode

LeetCode / 607.Sales Person / MySQL / Easy

728x90

📚문제

출처 : LeetCode(https://leetcode.com/problems/sales-person/)


📝풀이

# Write your MySQL query statement below
SELECT name
FROM SalesPerson
WHERE sales_id NOT IN (SELECT DISTINCT o.sales_id
FROM Orders o
JOIN Company c ON o.com_id = c.com_id AND c.name = 'RED'

 

정답처리 된 풀이

 

 

 

처음 풀이가 왜 안풀리는지 잘 이해가 되지 않아서 기록

# Write your MySQL query statement below
SELECT name
FROM SalesPerson
WHERE sales_id NOT IN (SELECT DISTINCT o.sales_id
FROM Orders o
WHERE com_id = 1)

JOIN 하지 않고 WHERE 조건으로 com_id = 1 ('RED'사) 인 경우에

해당하는 sales_id 를 제외시키는 방법으로 풀었다

 

근데 제출하고 Expected답과 비교해봤는데 Output에 대여섯명의 이름이 더 들어가있었다

이 방법으로는 알수가 없었다

 

그래서 내가 추측해본건

문제에서 com_id가 기본키라고 설정되어있지만

com_id가 중복이 없는거니까

다른 com_id에 'RED'회사 이름이 할당 되어있는 경우..?

아니면 문제예시에서만 com_id가 1일때 'RED'일 수도 있으니까..

어쨌든 문제에 맞춰서 'RED' 이름의 회사를 제외시켜주면 정답이다

728x90