LEFT JOIN
과 LEFT OUTER JOIN
의 차이점은 무엇입니까?
질문자 :KG Sosa
설명서에 따라: FROM(Transact-SQL) :
<join_type> ::= [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ] JOIN
키워드 OUTER
는 선택 사항으로 표시됩니다(대괄호로 묶음). 이 특정 경우에 OUTER
를 지정하는지 여부는 차이가 없습니다. 의 다른 요소 절에 가입하면서 또한 차이를 만들 것입니다 그들을 떠나, 옵션으로 표시되어 있습니다.
예를 들어, JOIN
절의 전체 유형 부분은 선택 사항이며, 이 경우 JOIN
만 지정하면 INNER
입니다. 즉, 이것은 합법적입니다.
SELECT * FROM A JOIN B ON AX = BY
다음은 동등한 구문 목록입니다.
A LEFT JOIN BA LEFT OUTER JOIN B A RIGHT JOIN BA RIGHT OUTER JOIN B A FULL JOIN BA FULL OUTER JOIN B A INNER JOIN BA JOIN B
또한이 다른 SO 질문에 대한 답변을 살펴보십시오. SQL 왼쪽 조인 대 FROM 행의 여러 테이블? .
Lasse V. Karlsen
귀하의 질문에 대답하기 위해 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]
SELECT
FROM
절에서)을 단순히 나열하는 시나리오와 유사하게 쉼표를 사용하여 구분합니다.
주의할 점:
-
JOIN
만 언급하면 기본적으로INNER JOIN
입니다. -
OUTER
LEFT
여야 합니다. |RIGHT
|FULL
OUTER JOIN
이라고 말할 수 없습니다. -
OUTER
키워드를 삭제LEFT JOIN
또는RIGHT JOIN
또는FULL JOIN
이라고 말하면 됩니다.
이것을 더 나은 방법으로 시각화하고 싶은 분들은 다음 링크로 이동하십시오: SQL 조인의 시각적 설명
sactiw
왼쪽 조인과 왼쪽 외부 조인의 차이점은 무엇입니까?
아무것도 . LEFT JOIN
및 LEFT OUTER JOIN
은 동일합니다.
Mitch Wheat
저는 PostgreSQL DBA입니다. 외부 조인 여부의 차이를 이해할 수 있는 한, 외부 조인의 차이는 인터넷 전체에서 상당한 토론이 있는 주제입니다. 오늘까지 나는 그 둘 사이의 차이를 본 적이 없습니다. 그래서 나는 더 나아가서 그것들의 차이점을 찾으려고 노력합니다. 결국 나는 그것에 대한 전체 문서를 읽었고 이에 대한 답을 찾았습니다.
따라서 문서(적어도 PostgreSQL에서)를 보면 다음 문구를 찾을 수 있습니다.
INNER
및 OUTER
라는 단어는 모든 형식에서 선택 사항입니다. INNER
가 기본값입니다. LEFT
, RIGHT
및 FULL
은 외부 조인을 의미합니다."
다시 말해,
LEFT JOIN
과 LEFT OUTER JOIN
동일합니다.
RIGHT JOIN
및 RIGHT OUTER JOIN
동일합니다.
아직 답을 찾고 있는 분들께 도움이 되었으면 합니다.
andrefsp
Left Join
과 Left Outer Join
은 하나이며 동일 합니다. 전자는 후자의 줄임말이다. Right Join
및 Right Outer Join
관계에 대해서도 마찬가지입니다. 데모는 평등을 설명합니다. 각 쿼리의 작업 예제는 SQL Fiddle을 통해 제공되었습니다. 이 도구를 사용하면 쿼리를 직접 조작할 수 있습니다.
주어진
결과
결과
WorkSmarter
다음 순서로 조인을 생각하는 것이 더 쉽습니다.
- CROSS JOIN - 두 테이블의 데카르트 곱. 모든 조인은 여기에서 시작됩니다.
- INNER JOIN - 필터가 추가된 CROSS JOIN.
- OUTER JOIN - 누락된 요소(LEFT 또는 RIGHT 테이블에서)가 나중에 추가된 INNER JOIN입니다.
이 (상대적으로) 간단한 모델을 알아내기 전까지 JOINS는 항상 약간 더 검은 예술이었습니다. 이제 그들은 완벽하게 이해합니다.
이것이 혼란스러운 것보다 더 도움이 되기를 바랍니다.
frozenjim
LEFT/RIGHT와 LEFT OUTER/RIGHT OUTER가 같은 이유는 무엇입니까? 이 어휘가 왜 그런지 설명합시다. LEFT 및 RIGHT 조인은 OUTER 조인의 특정 경우이므로 OUTER LEFT/OUTER RIGHT 이외의 다른 것은 될 수 없음을 이해하십시오. OUTER 조인은 OUTER 조인의 PARTIAL 결과인 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개 포함. 어휘, 교사가 이것을 설명하는 방식, 위의 몇 가지 답변을 보면 종종 다양한 유형의 조인이 있는 것처럼 보입니다. 그러나 실제로는 매우 간단합니다.
Yugo Amaryl
귀하의 질문에 대답하려면
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에서 조인
mass
조인은 3개뿐입니다.
- A) 교차 조인 = 데카르트(예: 테이블 A, 테이블 B)
- B) 내부 조인 = JOIN (예: 테이블 A 조인/내부 조인 테이블 B)
C) 외부 조인:
There are three type of outer join 1) Left Outer Join = Left Join 2) Right Outer Join = Right Join 3) Full Outer Join = Full Join
도움이 되기를 바랍니다.
Delickate
JOIN은 크게 3가지 종류가 있습니다.
- 내부: 두 테이블에 있는 데이터를 가져옵니다.
- JOIN만이 INNER JOIN을 의미합니다.
외부: 세 가지 유형
- LEFT OUTER - - 왼쪽 테이블에만 존재하는 데이터 및 일치하는 조건을 가져옵니다.
- RIGHT OUTER - 오른쪽 테이블 및 일치 조건에만 존재하는 데이터를 가져옵니다.
- FULL OUTER - - 테이블 중 하나 또는 둘 모두에 있는 데이터를 가져옵니다.
- (LEFT 또는 RIGHT 또는 FULL) OUTER JOIN은 "OUTER"를 쓰지 않고 쓸 수 있습니다.
Cross Join: 모든 것을 모든 것에 결합
Harsh
구문 설탕은 조인이 내부 조인이 아니라는 것을 일반 독자에게 더 분명하게 만듭니다.
Unsliced
이 질문의 맥락에서 2개의 'APPLY' 연산자도 게시하고 싶습니다.
조인 :
내부 조인 = 조인
외부 조인
왼쪽 외부 조인 = 왼쪽 조인
오른쪽 외부 조인 = 오른쪽 조인
전체 외부 조인 = 전체 조인
크로스 조인
SELF-JOIN : 이것은 정확히 별도의 조인 유형이 아닙니다. 이것은 기본적으로 위의 조인 중 하나를 사용하여 테이블을 자체에 조인하는 것입니다. 그러나 SQL 개발자 커뮤니티의 많은 사람들로부터 이 용어를 듣게 될 것이기 때문에 JOIN 토론의 맥락에서 언급할 가치가 있다고 생각했습니다.
신청 :
- CROSS APPLY -- INNER JOIN과 유사(그러나 왼쪽 테이블의 각 행에 대해 오른쪽 테이블에서 무언가를 계산할 수 있고 일치하는 행만 반환한다는 이점이 추가됨)
- OUTER APPLY -- LEFT OUTER 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 연산자를 배워야 한다고 생각합니다.
san
출처 : http:www.stackoverflow.com/questions/406294/left-join-vs-left-outer-join-in-sql-server
'etc. > StackOverFlow' 카테고리의 다른 글
Python의 정적 메서드? (0) | 2021.12.31 |
---|---|
꼬리 재귀 란 무엇입니까? (0) | 2021.12.31 |
추적되지 않은 파일을 어떻게 숨기나요? (0) | 2021.12.31 |
요소를 다른 요소로 이동하는 방법은 무엇입니까? (0) | 2021.12.31 |
RegEx는 XHTML 자체 포함 태그를 제외한 열린 태그와 일치합니다. (0) | 2021.12.31 |