티스토리 뷰

IT 한스푼

MYSQL JOIN과 서브쿼리 차이점과 사용

예술하는 개발자 최씨 2023. 5. 22. 17:00
반응형

MYSQL JOIN과 서브쿼리 차이점과 사용

조인과 서브쿼리는 모두 여러 테이블에서 데이터를 조회하는 데 사용할 수 있는 SQL 문법입니다. 그러나 두 가지에는 몇 가지 주요 차이점이 있습니다.

조인은 두 개 이상의 테이블을 결합하는 데 사용되는 반면 서브쿼리는 쿼리 내에서 다른 쿼리를 실행하는 데 사용됩니다. 조인은 일반적으로 더 효율적이며 데이터를 조회하는 더 직관적인 방법입니다. 서브쿼리는 복잡한 쿼리를 작성하는 데 사용할 수 있지만 성능이 저하될 수 있습니다.

조인은 INNER JOIN, LEFT JOIN, RIGHT JOIN 및 FULL JOIN과 같은 다양한 유형으로 제공됩니다. INNER JOIN은 두 테이블의 공통 열 값을 결합하는 반면 LEFT JOIN은 왼쪽 테이블의 모든 행을 반환하고 오른쪽 테이블의 해당 행을 조회합니다. RIGHT JOIN은 오른쪽 테이블의 모든 행을 반환하고 왼쪽 테이블의 해당 행을 조회합니다. FULL JOIN은 두 테이블의 모든 행을 반환합니다.

서브쿼리는 WHERE 절, HAVING 절 또는 SELECT 절에서 사용할 수 있습니다. WHERE 절에서 서브쿼리는 쿼리 결과 집합을 필터링하는 데 사용됩니다. HAVING 절에서 서브쿼리는 그룹화된 결과 집합을 필터링하는 데 사용됩니다. SELECT 절에서 서브쿼리는 새 열을 반환하는 데 사용됩니다.

조인은 일반적으로 서브쿼리보다 효율적입니다. 이는 조인이 두 테이블의 데이터를 한 번만 조회하는 반면 서브쿼리는 두 테이블의 데이터를 두 번 조회하기 때문입니다. 그러나 서브쿼리는 복잡한 쿼리를 작성하는 데 사용할 수 있습니다.

다음은 조인과 서브쿼리를 이용한 조인의 몇 가지 예입니다.

JOIN 예

SQL
SELECT
  p.name,
  p.cost
FROM products p
INNER JOIN sales s ON p.id = s.product_id
WHERE s.price = 2000;




이 쿼리는 2000달러에 판매된 제품의 이름과 가격을 조회합니다. INNER JOIN을 사용하여 두 테이블을 결합하고 WHERE 절을 사용하여 가격이 2000달러인 행만 조회합니다.

서브쿼리 예

SQL
SELECT
  p.name,
  p.cost
FROM products p
WHERE p.id IN (SELECT product_id FROM sales WHERE price = 2000);



이 쿼리는 2000달러에 판매된 제품의 이름과 가격을 조회합니다. 서브쿼리를 사용하여 가격이 2000달러인 제품의 ID를 조회한 다음 WHERE 절을 사용하여 ID가 일치하는 행만 조회합니다.



조인과 서브쿼리는 모두 여러 테이블에서 데이터를 조회하는 데 사용할 수 있는 강력한 도구입니다. 그러나 두 가지에는 몇 가지 주요 차이점이 있으므로 올바른 도구를 올바른 상황에 사용하는 것이 중요합니다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함