728x90
반응형
여러개의 테이블을 연결하여 하나의 테이블로 사용
1. INNER JOIN
교집합(A ∩ B)과 동일, 서로 일치하는 데이터 출력
SELECT *
FROM [테이블명] A
INNER JOIN [테이블명] B ON A.[필드] = B.[필드]
2. LEFT JOIN(= LEFT OUTER JOIN)
차집합(A - B)과 동일, 기준 테이블에 JOIN된 테이블과 조건이 맞는 기준 테이블의 데이터 출력
SELECT *
FROM [테이블명] A
LEFT [OUTER] JOIN [테이블명] B ON A.[필드] = B.[필드]
-- C를 제외한 데이터 출력
SELECT *
FROM [테이블명] A
LEFT [OUTER] JOIN [테이블명] B ON A.[필드] = B.[필드]
WHERE B.[필드] IS NULL
3. RIGHT JOIN(= RIGHT OUTER JOIN)
차집합(A - B)과 동일, 기준 테이블에 JOIN된 테이블과 조건이 맞는 JOIN된 테이블의 데이터 출력
SELECT *
FROM [테이블명] A
RIGHT [OUTER] JOIN [테이블명] B ON A.[필드] = B.[필드]
-- C를 제외한 데이터 출력
SELECT *
FROM [테이블명] A
RIGHT [OUTER] JOIN [테이블명] B ON A.[필드] = B.[필드]
WHERE A.[필드] IS NULL
4. FULL JOIN(= FULL OUTER JOIN)
합집합(A ∪ B)과 동일, 모든 데이터 출력
SELECT *
FROM [테이블명] A
FULL [OUTER] JOIN [테이블명] B ON A.[필드] = B.[필드]
-- C를 제외한 데이터 출력
SELECT *
FROM [테이블명] A
FULL [OUTER] JOIN [테이블명] B ON A.[필드] = B.[필드]
WHERE A.[필드] IS NULL
OR B.[필드] IS NULL
5. CROSS JOIN
곱집합(A × B)과 동일, 기준 테이블의 데이터와 JOIN된 테이블의 데이터를 전부 JOIN하여 데이터 출력
-- 1
SELECT *
FROM [테이블명] A
CROSS JOIN [테이블명] B
-- 2
SELECT *
FROM [테이블명] A, [테이블명] B
728x90
반응형
'Database > MS SQL' 카테고리의 다른 글
MS SQL。임시 테이블(WITH) (0) | 2020.12.05 |
---|---|
MS SQL。변수 선언(DECLARE) (0) | 2020.12.04 |
MS SQL。집합 연산자(EXCEPT) (0) | 2020.12.02 |
MS SQL。집합 연산자(INTERSECT) (0) | 2020.12.01 |
MS SQL。집합 연산자(UNION, UNION ALL) (0) | 2020.11.30 |