2013-08-22 5 views
0

Google에서 검색하려고했습니다. 하지만 모두가 내부 조인에 대해 설명하고 있으며 외부 조인은 전체 외부 조인/왼쪽/오른쪽을 포함합니다. 난 그냥 내부 조인과 외부 조인의 차이점을 알고 싶습니다.내외부 조인의 차이점은 무엇입니까?

+1

http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig.jpg – Paddyd

답변

0

내부 조인은 조인에 관련된 두 테이블 모두에서 열이 일치하는 곳이며 해당 조건이 참인 경우에만 결과를 반환합니다. 외부 조인은 일치하는 항목이없는 경우에도 결과를 반환하고 조인 조건이 충족되지 않을 경우 null을 반환합니다.

Sql fiddle link

0

내부

는 "결합 조건과 일치하는 두 테이블에서 모든 행을 가져옵니다."가입

외부

"는 [왼쪽/오른쪽] 테이블에서 모든 행을 취득하고 다른 테이블에서 조인 조건과 일치하는 행을 조인합니다."회원 가입

완전 외부는

는 "두 테이블에서 모든 행을 취득하고, 조인 조건에 일치하는 각 행을 가입 할 수 있습니다."회원 가입

SELECT m.*, mo.* 
FROM myTable m 
LEFT OUTER JOIN myOtherTable mo ON m.Id = mo.myTableId 

myOtherTable에서 왼쪽 테이블 (myTable에)과 일치하는 행에서 모든 행을 반환합니다 외부의 경우 당신이 말하는 경우 가입에

. 일치하지 않는 myTable의 모든 행은 mo. * 값이 NULL으로 설정됩니다. 예를 들어 당신 이드 (15)없이 myTable에 기록이있는 경우 있도록

SELECT m.*, mo.* 
FROM myTable m 
INNER JOIN myOtherTable mo ON m.Id = mo.myTableId 

만, 두 테이블에서 일치하는 행을 얻을 것이다 : 내부의 경우

당신이 말한다면 가입 와 myOtherTable 기록 것을 인식하는 다른 지점이 다음 행이 이드 15

으로 myTable에 행에 반환한다 (15)의 I myTableId f 여러 일치가 있으면 여러 행이 반환됩니다. 당신이 다음 myTableId (10)의 중복됩니다 (10)의 ID로 myTable에 행과 myOtherTable에이 개 항목이있는 경우 그래서, myOtherTable에서 첫 번째 레코드 한 행에 합류하고, 두 번째 레코드 하나.

관련 문제