hrming
[DB/SQL] JOIN & Subquery 본문
■ Subquery
- 복잡한 SQL 쿼리문에 많이 사용됨
- 메인 쿼리라고 부르는 외부 쿼리가 있고, 외부 쿼리 내에 다른 쿼리문, 즉 내부 쿼리가 있는 구조
■ Join
- 2개 혹은 그 이상의 테이블을 연결하고, 연결한 테이블로부터 필요한 열을 조회함
※ 서브쿼리는 가독성이 좋지만 성능이 조인에 비해 좋지 않다.
■ Subquery → Join으로 변경이 가능한 경우,
- 중첩 서브쿼리이면서 (=서브쿼리가 WHERE절 내에 존재),
① 스칼라 서브쿼리가 사용된 경우
② IN 혹은 NOT IN 연산자 안에 있는 서브쿼리
③ 상호연관 서브쿼리로, EXISTS 혹은 IN NOT EXISTS 연산자 안에 있는 서브쿼리
** 상호연관 서브쿼리: 서브쿼리가 메인쿼리와 연관되어있는(서브쿼리에서 메인쿼리를 참조하는) 경우
■ Subquery → Join으로 변경이 `불`가능한 경우,
- GROUP BY를 사용한 서브쿼리가 FROM 절에 있을 때
- 집계된 값을 반환하는 서브쿼리가 WHERE 절에 있을 때
- 서브쿼리가 ALL 연산자 안에 있을 때
자세한 예시는, 아래 참고!
참고 및 출처 :
[MYSQL] 📚 JOIN과 서브쿼리 차이 및 변환 💯 정리
조인(JOIN) vs 서브쿼리(Sub Query) 조인과 서브쿼리는 때로 동일한 결과를 얻을 수 있다. 상황에 따라 조인을 사용하는 것이 훨씬 좋을 때도 있고, 반면에 서브 쿼리를 사용하는 것이 좋을 때도 있다.
inpa.tistory.com
https://learnsql.com/blog/subquery-vs-join/#subquery-within-the-in-clause
Subquery vs. JOIN
What are the differences between a subquery and a JOIN in SQL? How do you choose one over the other? See examples of when to use which.
learnsql.com
SQL SubQuery (서브쿼리) 종류 및 정리
SubQuery는 SQL을 작성하다 보면 빠질 수 없는 문법입니다. 서브쿼리에 종류와 특징을 파악하고 적절하게 사용할 줄 안다면 큰 도움이 될 것입니다. SubQuery의 종류 1. 일반 서브쿼리 : 하나의 변수처
lcs1245.tistory.com
'DB' 카테고리의 다른 글
[DB/SQL] 날짜 중복 체크 쿼리 (1) | 2024.11.08 |
---|---|
[DB/SQL] 서브쿼리의 종류 - 스칼라 서브쿼리, 인라인 뷰, 중첩 서브쿼리 (0) | 2024.10.04 |
[DB/SQL] DELETE, TRUNCATE, DROP (0) | 2024.10.04 |
[DB/Oracle] ON DELETE CASCADE, ON DELETE SET NULL (0) | 2024.10.04 |
[DB/Oracle] NOT NULL ENABLE (0) | 2024.07.22 |