전체 외부 조인 대 전체 조인


84

조인을 더 잘 이해하기 위해 쿼리와 예제를 가지고 놀기만하면됩니다. SQL Server 2008에서 다음 두 쿼리가 동일한 결과를 제공한다는 것을 알았습니다.

SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name

SELECT * FROM TableA
FULL JOIN TableB
ON TableA.name = TableB.name

동일한 결과를 생성하기 위해 정확히 동일한 작업을 수행합니까, 아니면 더 복잡한 예에서 다른 결과가 발생합니까? 이것은 상호 교환 가능한 용어입니까?


2
예, 두 쿼리 모두 SQL Server 2008 R2에서 동일한 결과를 제공합니다.
CptSupermrkt 2012

답변:


103

사실 그들은 동일합니다. LEFT OUTER JOIN과 동일 LEFT JOIN하고 RIGHT OUTER JOIN동일합니다 RIGHT JOIN. 에서 비교하는 더 유익한 방법입니다 INNER Join.

자세한 내용은이 Wikipedia 기사 를 참조하십시오.


3
완벽 해, 고마워. 내가 만난 너무 많은 튜토리얼은 그것들이 동일하다는 것을 언급하지 않고 자신의 스타일에 따라 사용합니다.
CptSupermrkt

2
조인의 시각적 표현 : codeproject.com/Articles/33052/…
Hawkeye Parker

37

Microsoft® SQL Server ™ 2000은 FROM 절에 지정된 외부 조인에 대해 다음 SQL-92 키워드를 사용합니다.

  • LEFT OUTER JOIN 또는 LEFT JOIN

  • RIGHT OUTER JOIN 또는 RIGHT JOIN

  • FULL OUTER JOIN 또는 FULL JOIN

에서 MSDN

full outer join또는 full join일치가 만들어 배치 할 수 있습니다 어디든지 행까지 일치하는 두 테이블에서 반환 모든 행, NULL일치하는 행이 존재하지 않는 장소에들.


11

일부 데이터베이스가 OUTER 키워드를 인식하는 것은 사실입니다. 일부는 그렇지 않습니다. 인식되는 경우 일반적으로 선택적 키워드입니다. 거의 항상 FULL JOIN과 FULL OUTER JOIN은 똑같은 일을합니다. (그렇지 않은 예를 생각할 수 없습니다. 다른 사람이 생각할 수 있습니까?)

"의미가 없는데 왜 키워드일까요?" 대답은 프로그래밍 스타일로 귀결됩니다.

예전에는 프로그래머가 코드를 최대한 간결하게 만들려고 노력했습니다. 모든 캐릭터는 더 긴 처리 시간을 의미했습니다. 1, 2, 3 개의 문자 변수를 사용했습니다. 우리는 2 자리 연도를 사용했습니다. 불필요한 공백을 모두 제거했습니다. 어떤 사람들은 여전히 ​​그렇게 프로그래밍합니다. 더 이상 처리 시간에 관한 것이 아닙니다. 빠른 코딩에 관한 것입니다.

현대의 프로그래머는보다 설명적인 변수를 사용하고 코드에 더 많은 설명과 문서를 추가하는 방법을 배우고 있습니다. OUTER와 같은 추가 단어를 사용하면 코드를 읽는 다른 사람들이 코드를 더 쉽게 이해할 수 있습니다. 모호성이 줄어들 것입니다. 이 스타일은 코드를 유지해야하는 미래의 사람들에게 훨씬 더 읽기 쉽고 친절합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.