TIL

[SQL] Subquery와 JOIN

oceanflow 2024. 12. 24. 21:05

1. Subquery

 1) 여러 번의 연산 한번에 수행하기

    연산이 한번에 끝나지 않을 때 하나의 SQL문장 안에 또 다른 SQL 문장을 포함하는 것을 서브쿼리라고 한다.

     일반적으로 서브쿼리가 먼저 실행되고, 그 결과를 이용해 메인 쿼리가 실행 된다.

     기본적인 구조는 다음과 같다. 여러 번 중첩하여 사용할 수 있다.

SELECT 컬럼명
FROM
	(
    SELECT 컬럼명
    FROM 테이블명
    ) AS 별칭

 

2. JOIN ( INNER JOIN, LEFT JOIN, RIGHT JOIN)

 1) 여러 테이블에서 데이터 불러오기

    원하는 데이터가 한 테이블에 있지 않고 다른 테이블에 분산되어 있을 때 테이블을 연결하여 데이터를 조회해 준다.

    INNER JOIN, RIGHT JOIN, LEFT JOIN 등이 있다.

 

 2) INNER JOIN

    INNER JOIN은 가장 일반적인 JOIN으로, 두 테이블에서 일치하는 값을 가진 행만 가져온다.

 

 3) LEFT JOIN

    LEFT JOIN은 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 가져온다.

 

 4) RIGHT JOIN

     RIGHT JOIN은 LEFT JOIN의 반대로 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 가져온다.

 

 5) JOIN의 기본 구조

-- INNER JOIN
SELECT 조회 할 컬럼
FROM 테이블1 a INNER JOIN 테이블2 b ON a.공통 컬럼명 = b.공통 컬럼명

-- LEFT JOIN
SELECT 조회 할 컬럼
FROM 테이블1 a LEFT JOIN 테이블2 b ON a.공통 컬럼명 = b.공통 컬럼명

-- RIGHT JOIN
SELECT 조회 할 컬럼
FROM 테이블1 a RIGHT JOIN 테이블2 b ON a.공통 컬럼명 = b.공통 컬럼명

 

    이때, 공통 컬럼은 묶기 위한 공통 값이기 때문에 컬럼명이 일치하지 않아도 된다.