MySQL에서는 INTERSECT와 MINUS 연산을 지원하지 않는다.
어떻게 하면 다른 쿼리를 같은 효과를 낼 수 있는지 알아보자..!
INTERSECT
SELECT emp_no FROM dept_emp WHERE dept_no = 'd001'
INTERSECT
SELECT emp_no FROM dept_emp WHERE dept_no = 'd002';
INNER JOIN을 사용할 수 있다.
SELECT de1.emp_no
FROM dept_emp de1
INNER JOIN dept_emp de2 ON de2.emp_no = de1.emp_no AND de2.dept_no = 'd001'
WHERE de1.dept_no = 'd002';
MINUS
SELECT emp_no FROM dept_emp WHERE dept_no = 'd001'
MINUS
SELECT emp_no FROM dept_emp WHERE dept_no = 'd002';
ANTI Join을 활용할 수 있다.
SELECT de1.emp_no
FROM dept_emp de1
LEFT JOIN dept_emp de2 ON de2.emp_no = de1.emp_no AND de2.dept_no = 'd002'
WHERE de1.dept_no = 'd001' AND de2.dept_no is NULL;
'개발 공부 기록하기 > 02. DB & SQL' 카테고리의 다른 글
내맘대로 정리하는 Real MySQL #7장) 쿼리 작성 및 최적화 (0) | 2020.08.31 |
---|---|
MySQL DDL 총 모음 (0) | 2020.08.30 |
서브쿼리 튜닝 (0) | 2020.08.28 |
JOIN 쿼리 튜닝 (0) | 2020.08.26 |
GROUP BY, ORDER BY 인덱스 튜닝 (0) | 2020.08.25 |