최대 1 분 소요

문제 링크

정답

SELECT name
FROM SalesPerson
WHERE sales_id NOT IN (
    SELECT O.sales_id
    FROM Orders O
    INNER JOIN Company C
    ON O.com_id = C.com_id
    AND C.name like 'RED'
)

✅ Point

  • company name에 ‘RED’ 가 없는 경우 구하기
    • 방법 1
      • Orders 중 company name 에 RED가 있는 경우(sales_id)를 구하고,
      • 해당 sales_id를 제외한 경우만 SELECT
    • 방법 2
      • RIGHT JOIN + NULL

다른 풀이

  • company name 에 RED 가 있는 경우 구하고
  • RIGHT JOIN + NULL
SELECT SP.name
FROM Orders O
JOIN Company C
ON O.com_id = C.com_id AND C.name like 'RED'
RIGHT JOIN SalesPerson SP
ON O.sales_id = SP.sales_id
WHERE C.name IS NULL