JOIN 관련 기술면접 질문 미리보기
Q. JOIN에 대해서 설명해보세요.
INNER JOIN: 내부조인 -> 교집합
LEFT/RIGHT JOIN -> 부분 집합
OUTER JOIN -> 합집합
UNION
RIGHT JOIN을 합니다.1. LEFT JOIN (= LEFT OUTER JOIN)
SELECT * FROM employees e
LEFT JOIN departments d ON e.department_id = d.id;
2. LEFT JOIN (순수 A만 구할 때)
SELECT * FROM employees e
LEFT JOIN departments d ON e.department_id = d.id
WHERE d.id IS NULL;
3. RIGHT JOIN (= RIGHT OUTER JOIN)
SELECT * FROM employees e
RIGHT JOIN departments d ON e.department_id = d.id;
4. RIGHT JOIN (순수 B만 구할 때)
SELECT * FROM employees e
RIGHT JOIN departments d ON e.department_id = d.id
WHERE e.id IS NULL;
5. INNER JOIN (교집합)
SELECT * FROM employees e
INNER JOIN departments d ON e.department_id = d.id;
6. FULL OUTER JOIN (합집합)
SELECT * FROM employees e
LEFT JOIN departments d ON e.department_id = d.id
UNION
SELECT * FROM employees e
RIGHT JOIN departments d ON e.department_id = d.id;
7. CROSS JOIN (모든 경우의 수를 전부 표현)
이 쿼리는 모든 직원과 모든 부서의 조합을 반환합니다.
-> 직원 행의 수 * 부서 행의 수
SELECT * FROM employees e
CROSS JOIN departments d;
8. SELF JOIN
같은 테이블 내에서 행을 결합할 때 사용합니다.
-> 직원과 그들의 상사 정보를 반환
SELECT e1.name AS Employee, e2.name AS Manager
FROM employees e1
JOIN employees e2 ON e1.manager_id = e2.id;
Q. JOIN에 대해서 설명해보세요.
JOIN은 여러 테이블에서 데이터를 결합하여 조회할 때 사용합니다. 주요 JOIN 유형은 다음과 같습니다.
INNER JOIN은 두 테이블 간의 일치하는 데이터를 반환합니다.
LEFT JOIN은 왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 일치하는 데이터를 반환합니다. 오른쪽 테이블에 일치하지 않는 데이터는 NULL로 표시됩니다.
RIGHT JOIN은 오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 일치하는 데이터를 반환합니다. 왼쪽 테이블에 일치하지 않는 데이터는 NULL로 표시됩니다.
CROSS JOIN은 두 테이블의 모든 가능한 조합을 반환합니다.
SELF JOIN은 같은 테이블 내에서 행을 결합하여 조회합니다.
ref.
https://pearlluck.tistory.com/46
[MYSQL] 📚 테이블 조인(JOIN) - 그림으로 알기 쉽게 정리
https://chlgpdus921.github.io/basecamp/MySQL-JOIN/#reference
https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Database/%5BDatabase%20SQL%5D%20JOIN.md