SQL/Testdome

Testdome - Workers

소HS군 2023. 2. 18. 13:36

참고 링크 : https://app.testdome.com/tests?sort=popularity+desc&generator=12 

 

C> 조건

-- Example case create statement:
CREATE TABLE employees (
  id INTEGER NOT NULL PRIMARY KEY,
  managerId INTEGER, 
  name VARCHAR(30) NOT NULL,
  FOREIGN KEY (managerId) REFERENCES employees(id)
);

INSERT INTO employees(id, managerId, name) VALUES(1, NULL, 'John');
INSERT INTO employees(id, managerId, name) VALUES(2, 1, 'Mike');

-- Expected output (in any order):
-- name
-- ----
-- Mike

-- Explanation:
-- In this example.
-- John is Mike's manager. Mike does not manage anyone.
-- Mike is the only employee who does not manage anyone.

Q> 구하는 것 

아래 관리하지 않는 직원을 추출하는 법 

 

H> 방법 : not exists 함수 사용 

1. 포함하는 방법을 적용

2. 추가로 포함하지 않는 방법을 적용 

 

A> 답 

 

select name

           from employees as t1

    where not exists (select managerid

                                                from employees as t2

                                                where t1.id = t2.managerid)

 

L> 레슨 : 복잡한 문제를 셀프 조인과 exists 함수를 통한 해결