차이점은 무엇이며 LEFT JOIN
그리고 LEFT OUTER JOIN
?
답변
설명서에 따라 FROM (Transact-SQL) :
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
키워드 OUTER
는 선택 사항으로 표시됩니다 (대괄호로 묶음). 이 특정한 경우에, 당신이 지정하는지의 여부 OUTER
는 차이가 없습니다. 의 다른 요소 절에 가입하면서도 떠나, 옵션으로 표시되어 있습니다 그들을 밖으로 것 차이를 확인하십시오.
예를 들어, JOIN
절의 전체 type-part 는 선택 사항입니다.이 경우 기본값은 INNER
단지 지정 하는 경우 JOIN
입니다. 다시 말해, 이것은 합법적입니다.
SELECT *
FROM A JOIN B ON A.X = B.Y
동등한 구문 목록은 다음과 같습니다.
A LEFT JOIN B A LEFT OUTER JOIN B
A RIGHT JOIN B A RIGHT OUTER JOIN B
A FULL JOIN B A FULL OUTER JOIN B
A INNER JOIN B A JOIN B
또한이 다른 SO 질문에 남은 대답을 살펴보십시오 .SQL 왼쪽 조인 대 FROM 행의 여러 테이블? .
답변
귀하의 질문에 대답하기 위해 LEFT JOIN과 LEFT OUTER JOIN의 차이점은 없습니다 .
최상위 수준에는 주로 3 가지 유형의 조인이 있습니다.
- 안의
- 밖의
- 가로 질러 가다
-
INNER JOIN- 두 테이블 모두에있는 경우 데이터를 가져옵니다.
-
OUTER JOIN 은 3 가지 유형입니다.
LEFT OUTER JOIN
-왼쪽 테이블에있는 경우 데이터를 가져옵니다.RIGHT OUTER JOIN
-오른쪽 테이블에 데이터가 있으면 가져옵니다.FULL OUTER JOIN
-두 테이블 중 하나에있는 경우 데이터를 가져옵니다.
-
이름에서 알 수 있듯이 CROSS JOIN 은
[n X m]
모든 것을 모든 것과 결합시킵니다. 쉼표를 사용하여 분리하기 위해 명령문
의FROM
절에 조인 테이블을 간단히 나열하는 시나리오와 유사SELECT
합니다.
주목할 사항 :
- 방금 언급
JOIN
한 경우 기본적으로 aINNER JOIN
입니다. - 이
OUTER
있어야한다 조인LEFT
|RIGHT
|FULL
당신은 단순히 말할 수 없습니다OUTER JOIN
. OUTER
키워드 를 삭제 하고LEFT JOIN
orRIGHT JOIN
또는 이라고 말하면FULL JOIN
됩니다.
더 나은 방법으로 이들을 시각화하려면 다음 링크로 이동하십시오.
SQL 조인에 대한 시각적 설명
답변
왼쪽 조인과 왼쪽 외부 조인의 차이점은 무엇입니까?
아무것도 없습니다 . LEFT JOIN
그리고 LEFT OUTER JOIN
동등합니다.
답변
외부 조인과 외부 조인의 차이를 이해할 수있는 한 PostgreSQL DBA입니다. 차이점은 인터넷 전체에서 상당한 토론을하는 주제입니다. 오늘까지 나는 그 두 가지의 차이점을 보지 못했습니다. 그래서 나는 더 나아가서 그 차이점을 찾으려고 노력합니다. 결국 나는 그것에 관한 전체 문서를 읽었고 이에 대한 답을 찾았습니다.
따라서 문서 (적어도 PostgreSQL에서)를 보면이 문구를 찾을 수 있습니다.
“단어 INNER
와는 OUTER
. 모든 형태의 선택 사항 INNER
, 기본값 LEFT
, RIGHT
및 FULL
외부 조인을 의미한다.”
다시 말해
LEFT JOIN
과 LEFT OUTER JOIN
같다
RIGHT JOIN
과 RIGHT OUTER JOIN
같다
나는 그것이 여전히 답을 찾으려고 노력하는 사람들에게 기여할 수 있기를 바랍니다.
답변
Left Join
그리고 Left Outer Join
다른 하나는 있습니다 동일 . 전자는 후자의 속기입니다. Right Join
및 Right Outer Join
관계 에 대해서도 마찬가지 입니다. 데모는 평등을 보여줄 것입니다. 각 쿼리의 실제 예제는 SQL Fiddle을 통해 제공되었습니다 . 이 도구를 사용하면 쿼리를 직접 조작 할 수 있습니다.
주어진
결과
결과
답변
다음 순서로 조인을 생각하는 것이 더 쉽다는 것을 알았습니다.
- CROSS JOIN-두 테이블의 데카르트 곱. 모든 조인은 여기에서 시작합니다
- 내부 가입-필터가 추가 된 CROSS JOIN.
- 외부 조인-요소가 누락 된 내부 조인 (왼쪽 또는 오른쪽 테이블에서)이 나중에 추가됩니다.
이 (상대적으로) 간단한 모델을 알아낼 때까지 JOINS는 항상 약간의 검은 예술이었습니다. 이제 그들은 완벽하게 이해됩니다.
이것이 혼란보다 더 도움이되기를 바랍니다.
답변
LEFT / RIGHT와 LEFT OUTER / RIGHT OUTER가 같은 이유는 무엇입니까? 왜이 어휘를 설명해 봅시다. LEFT 및 RIGHT 조인은 OUTER 조인의 특정 사례이므로 OUTER LEFT / OUTER RIGHT 이외의 다른 것은 될 수 없습니다. OUTER 조인은 OUTER 조인의 부분 결과 인 LEFT 및 RIGHT 조인과 달리 FULL OUTER 라고도 합니다. 과연:
Table A | Table B Table A | Table B Table A | Table B Table A | Table B
1 | 5 1 | 1 1 | 1 1 | 1
2 | 1 2 | 2 2 | 2 2 | 2
3 | 6 3 | null 3 | null - | -
4 | 2 4 | null 4 | null - | -
null | 5 - | - null | 5
null | 6 - | - null | 6
OUTER JOIN (FULL) LEFT OUTER (partial) RIGHT OUTER (partial)
INNER, OUTER, CROSS의 3 가지 사례 만 존재하는 것은 물론 이러한 작업에 별칭이있는 이유가 명확 해졌습니다. OUTER를위한 2 개의 서브 케이스. 교사가 이것을 설명하는 방법과 어휘, 위의 답변은 종종 다양한 유형의 참여가있는 것처럼 보입니다. 그러나 실제로는 매우 간단합니다.