====== JOIN 개념과 종류 ======
* description : JOIN 개념과 종류
* author : 연목구어
* email : yspark@repia.com
* lastupdate : 2020-03-17
===== 참고 사이트 =====
* https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins 사이트 번역본
===== 설명 =====
* 이 문서에서는 시각적 방식으로 SQL 조인과 시각화 된 조인을 작성하는 가장 효율적인 방법에 대해 설명합니다.
* 이것은 SQL JOIN을 시각적으로 설명하는 간단한 기사입니다. 이 기사에서는 두 관계형 테이블에서 데이터를 반환 할 수있는 7 가지 방법에 대해 설명하겠습니다.
* 내가 논의 할 7 개의 조인은 내부 조인, 왼쪽 조인, 오른쪽 조인, 외부 조인, 왼쪽 제외 조인, 오른쪽 제외 조인, 외부 조인 제외, 각각의 예를 제공합니다.
===== 배경 =====
* 나는 꽤 시각적 인 사람입니다. 상황이 그림으로 이해되는 것 같습니다. 인터넷을 통해 SQL JOIN의 그래픽을 잘 보여 주었지만 원하는대로 찾을 수 없었습니다.
* 일부는 좋은 다이어그램을 가지고 있지만 완전성이 부족했습니다 (가능한 모든 JOIN이 없었습니다).
* 그래서 나는 내 자신을 만들고 기사를 작성하기로 결정했습니다.
=====Using the code =====
* 두 관계형 테이블에서 데이터를 반환 할 수있는 7 가지 방법에 대해 설명하겠습니다. 교차 조인 및 자체 참조 조인은 제외합니다. 내가 논의 할 7 가지 조인은 다음과 같습니다.
* 1.INNER JOIN
* 2.LEFT JOIN
* 3.RIGHT JOIN
* 4.OUTER JOIN
* 5.LEFT JOIN EXCLUDING INNER JOIN
* 6.RIGHT JOIN EXCLUDING INNER JOIN
* 7.OUTER JOIN EXCLUDING INNER JOIN
* 이 문서의 위해, 나는대로 5, 6, 7을 참조 것 LEFT EXCLUDING JOIN, RIGHT EXCLUDING JOIN그리고 OUTER EXCLUDING JOIN각각. 일부는 5, 6 및 7이 실제로 두 테이블을 조인하지 않는다고 주장 할 수 있지만 간결성을 위해 각 쿼리에서 SQL 조인을 사용하기 때문에 여전히 조인이라고 부릅니다 (그러나 WHERE절로 일부 레코드는 제외 ) .
===== INNER JOIN =====
* 가장 단순하고 이해하기 쉬운 조인이며 가장 일반적입니다. 이 쿼리는 오른쪽 테이블 (테이블 B)에 일치하는 레코드가있는 왼쪽 테이블 (테이블 A)의 모든 레코드를 반환합니다. 이 조인은 다음과 같이 작성됩니다.
{{:wiki:database:inner_join.png?258*174}}
SELECT
FROM Table_A A
INNER JOIN Table_B B
ON A.Key = B.Key
===== Left JOIN =====
* 이 쿼리는 오른쪽 테이블 (테이블 B)과 일치하는 레코드가 있는지 여부에 관계없이 왼쪽 테이블 (테이블 A)의 모든 레코드를 반환합니다. 또한 오른쪽 테이블에서 일치하는 레코드를 반환합니다
{{:wiki:database:left_join.png?258*174}}
SELECT
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
===== Right JOIN =====
* 이 쿼리는 왼쪽 테이블 (테이블 A)과 일치하는 레코드가 있는지에 관계없이 오른쪽 테이블 (테이블 B)의 모든 레코드를 반환합니다. 또한 왼쪽 테이블에서 일치하는 레코드를 반환합니다. 이 조인은 다음과 같이 작성
{{:wiki:database:right_join.png?258*174}}
SELECT
FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
===== Outer JOIN =====
* 이 조인은 a FULL OUTER JOIN또는 a 라고도 합니다 FULL JOIN. 이 쿼리는 두 테이블의 모든 레코드를 반환하고 오른쪽 테이블 (테이블 B)의 레코드와 일치하는 왼쪽 테이블 (테이블 A)의 레코드를 조인
{{:wiki:database:full_outer_join.png?258*174}}
SELECT
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
=====Left Excluding JOIN =====
* 이 쿼리는 오른쪽 테이블 (테이블 B)의 레코드와 일치하지 않는 왼쪽 테이블 (테이블 A)의 모든 레코드를 반환합니다. 이 조인은 다음과 같이 작성
{{:wiki:database:left_excluding_join.png?258*174}}
SELECT
FROM Table_A A
LEFT JOIN Table_B B
ON A.Key = B.Key
WHERE B.Key IS NULL
===== Right Excluding JOIN=====
* 이 쿼리는 왼쪽 테이블 (테이블 A)의 레코드와 일치하지 않는 오른쪽 테이블 (테이블 B)의 모든 레코드를 반환합니다. 이 조인은 다음과 같이 작성
{{:wiki:database:right_excluding_join.png?258*174}}
SELECT
FROM Table_A A
RIGHT JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL
===== Outer Excluding JOIN =====
* 이 쿼리는 왼쪽 테이블 (테이블 A)의 모든 레코드와 오른쪽 테이블 (테이블 B)의 모든 레코드가 일치하지 않는 것을 반환합니다. 아직이 유형의 Join을 사용해야 할 필요는 없지만 다른 모든 유형은 매우 자주 사용합니다. 이 조인은 다음과 같이 작성
{{:wiki:database:outer_excluding_join.png?258*174}}
SELECT
FROM Table_A A
FULL OUTER JOIN Table_B B
ON A.Key = B.Key
WHERE A.Key IS NULL OR B.Key IS NULL
===== Ref =====
* [[https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins|원본사이트/SQL 조인의 시각적 표현]]
{{tag>연목구어 join}}