차이점은 무엇이며 LEFT JOIN
그리고 LEFT OUTER JOIN
?
차이점은 무엇이며 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 행의 여러 테이블? .
INNER JOIN
오른쪽과 JOIN
왼쪽에있는 것이 낫지 않습니까?
JOIN
s에 대해 똑같이 따라한다면 일관성이 있다고 생각했습니다 .
귀하의 질문에 대답하기 위해 LEFT JOIN과 LEFT OUTER JOIN의 차이점은 없습니다 .
INNER JOIN- 두 테이블 모두에있는 경우 데이터를 가져옵니다.
OUTER JOIN 은 3 가지 유형입니다.
LEFT OUTER JOIN
-왼쪽 테이블에있는 경우 데이터를 가져옵니다.RIGHT OUTER JOIN
-오른쪽 테이블에 데이터가 있으면 가져옵니다.FULL OUTER JOIN
-두 테이블 중 하나에있는 경우 데이터를 가져옵니다.이름에서 알 수 있듯이 CROSS JOIN 은 [n X m]
모든 것을 모든 것과 결합시킵니다. 쉼표를 사용하여 분리하기 위해 명령문
의 FROM
절에 조인 테이블을 간단히 나열하는 시나리오와 유사 SELECT
합니다.
주목할 사항 :
JOIN
한 경우 기본적으로 a INNER JOIN
입니다.OUTER
있어야한다 조인 LEFT
| RIGHT
| FULL
당신은 단순히 말할 수 없습니다 OUTER JOIN
.OUTER
키워드 를 삭제 하고 LEFT JOIN
or RIGHT JOIN
또는 이라고 말하면 FULL JOIN
됩니다.더 나은 방법으로 이들을 시각화하려면 다음 링크로 이동하십시오. SQL 조인에 대한 시각적 설명
CROSS JOIN
와 동일합니다 FULL JOIN
.
Cross Join
하고 Full Outer Join
어떤 방법이 비슷한 것 같습니다에 ....
왼쪽 조인과 왼쪽 외부 조인의 차이점은 무엇입니까?
아무것도 없습니다 . LEFT JOIN
그리고 LEFT OUTER JOIN
동등합니다.
OUTER
선택 사항 인 이유에 대한 참조 또는 설명을 추가하면 좋을 것 입니다.
외부 조인과 외부 조인의 차이를 이해할 수있는 한 PostgreSQL DBA입니다. 차이점은 인터넷 전체에서 상당한 토론을하는 주제입니다. 오늘까지 나는 그 두 가지의 차이점을 보지 못했습니다. 그래서 나는 더 나아가서 그 차이점을 찾으려고 노력합니다. 결국 나는 그것에 관한 전체 문서를 읽었고 이에 대한 답을 찾았습니다.
따라서 문서 (적어도 PostgreSQL에서)를 보면이 문구를 찾을 수 있습니다.
"단어 INNER
와는 OUTER
. 모든 형태의 선택 사항 INNER
, 기본값 LEFT
, RIGHT
및 FULL
외부 조인을 의미한다."
다시 말해
LEFT JOIN
과 LEFT OUTER JOIN
같다
RIGHT JOIN
과 RIGHT OUTER 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 개의 서브 케이스. 교사가 이것을 설명하는 방법과 어휘, 위의 답변은 종종 다양한 유형의 참여가있는 것처럼 보입니다. 그러나 실제로는 매우 간단합니다.
JOIN
암시하는 INNER JOIN
"이 외부 조인 어휘 에 대한 추론과 일치 하는지 설명 할 수 있습니까?
질문에 대답하기 위해
SQL Server 조인 구문에서 OUTER 은 선택 사항입니다.
msdn 기사에 언급되어 있습니다 : https://msdn.microsoft.com/en-us/library/ms177634(v=sql.130).aspx
따라서 다음 목록은 OUTER 유무에 관계없이 동등한 구문을 보여줍니다.
LEFT OUTER JOIN => LEFT JOIN
RIGHT OUTER JOIN => RIGHT JOIN
FULL OUTER JOIN => FULL JOIN
다른 동등한 구문
INNER JOIN => JOIN
CROSS JOIN => ,
Dotnet Mob Artice를 적극 추천 : SQL Server에 참여
JOIN에는 주로 세 가지 유형이 있습니다
외부 : 세 가지 유형
크로스 조인 : 모든 것을 모든 것에 조인
구문 설탕은 일반 독자에게 조인이 내면이 아니라는 것을 더 분명하게 만듭니다.
이 질문의 맥락에서 2 개의 'APPLY'연산자를 게시하고 싶습니다.
가입 :
내부 가입 = 가입
외부 가입
왼쪽 외부 가입 = 왼쪽 가입
오른쪽 외부 가입 = 오른쪽 가입
완전 외부 가입 = 완전 가입
크로스 가입
SELF-JOIN : 이것은 별도의 조인 유형이 아닙니다. 이것은 기본적으로 위의 조인 중 하나를 사용하여 테이블을 조인하는 것입니다. 그러나 SQL Developer 커뮤니티에서 많은 사람들 이이 용어를들을 수 있기 때문에 JOIN 토론에서 언급 할 가치가 있다고 느꼈습니다.
적용 :
https://www.mssqltips.com/sqlservertip/1958/sql-server-cross-apply-and-outer-apply/
https://sqlhints.com/2016/10/23/outer-apply-in-sql-server/
실제 예, SQL에서 OUTER / CROSS APPLY를 사용하는 경우
APPLY 연산자는 하위 쿼리에서 동일한 계산을 수행하는 것보다 더 나은 성능을 제공하므로 매우 유용합니다. 또한 이전 버전의 SQL Server에서 많은 분석 기능을 대체합니다. 그래서 JOINS에 익숙해지면 한 SQL 개발자가 다음에 APPLY 연산자를 배우려고 노력해야한다고 생각합니다.
OUTER
키워드는 선택 사항입니다.