[sql] 전체 외부 조인 대 전체 조인

조인을 더 잘 이해하기 위해 쿼리와 예제를 가지고 놀기만하면됩니다. 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

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



답변

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

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


답변

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일치하는 행이 존재하지 않는 장소에들.


답변

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

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

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

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


답변