[DataBase] 조인 SQL문
1. LEFT JOIN
LEFT JOIN은 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 일치하는 레코드를 반환한다. 왼쪽 테이블에 일치하는 레코드가 없으면 NULL 값을 포함한 레코드를 반환한다.
SELECT * FROM TableA A LEFT JOIN TableB B ON A.key = B.key;
2. INNER JOIN
INNER JOIN은 두 테이블 간의 일치하는 레코드만 반환한다. 일치하는 레코드가 없으면 결과에 포함되지 않는다.
SELECT * FROM TableA A INNER JOIN TableB B ON A.key = B.key;
3. RIGHT JOIN
RIGHT JOIN은 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 일치하는 레코드를 반환한다. 오른쪽 테이블에 일치하는 레코드가 없으면 NULL 값을 포함한 레코드를 반환한다.
SELECT * FROM TableA A RIGHT JOIN TableB B ON A.key = B.key;
4. LEFT JOIN with NULL condition
LEFT JOIN에 WHERE 조건을 추가하여 오른쪽 테이블에 일치하지 않는 레코드만 반환한다.
SELECT * FROM TableA A LEFT JOIN TableB B ON A.key = B.key WHERE B.Key IS NULL;
5. FULL OUTER JOIN
FULL OUTER JOIN은 두 테이블의 모든 레코드를 반환하며, 일치하지 않는 레코드는 NULL 값을 포함한다. SQL에서는 FULL OUTER JOIN을 UNION으로 구현할 수 있다.
SELECT * FROM TableA A LEFT JOIN TableB B ON A.key = B.key
UNION
SELECT * FROM TableA A RIGHT JOIN TableB B ON A.key = B.key;
6. FULL OUTER JOIN with NULL condition
FULL OUTER JOIN에 WHERE 조건을 추가하여 어느 한쪽에 일치하지 않는 레코드만 반환한다.
SELECT * FROM TableA A LEFT JOIN TableB B ON A.key = B.key
UNION
SELECT * FROM TableA A RIGHT JOIN TableB B ON A.key = B.key WHERE A.key IS NULL OR B.key IS NULL;
7. RIGHT JOIN with NULL condition
RIGHT JOIN에 WHERE 조건을 추가하여 왼쪽 테이블에 일치하지 않는 레코드만 반환한다.
SELECT * FROM TableA A RIGHT JOIN TableB B ON A.key = B.key WHERE A.Key IS NULL;
이러한 JOIN 종류를 사용하면 다양한 방식으로 데이터를 결합하고 조회할 수 있다. 상황에 맞게 적절한 JOIN을 선택하여 데이터베이스 쿼리를 작성하면 된다.
'낙서장[1] > 94. DataBase' 카테고리의 다른 글
[DataBase] ON 절과 WHERE 절을 사용하는 조인의 차이 (0) | 2025.01.23 |
---|