[SQL] FULL의 차이는 가입 및 INNER는 가입
SQLFULL의 차이는 가입 및 INNER는 가입
FULL은 가입 및 내부 조인의 차이점은 무엇입니까?
나는 전체가 가입 할 때, 나는 832 개 기록을 얻을 내부 조인과 함께, 나는 830 개 기록을 얻을.
해결법
-
==============================
1.참고 :이 모든 위키 피 디아에서 찾을 수 있습니다 : 가입 (SQL).
참고 :이 모든 위키 피 디아에서 찾을 수 있습니다 : 가입 (SQL).
OUTER 조인의 세 가지 유형이 있습니다 :
FULL 전체 외부 조인과 동일 가입 있도록 키워드 OUTER는, 표준에 따라 모든 구현의 선택 사항입니다. (나는이 답변의 나머지 부분에서 SQL에서 단어 OUTER를 생략했습니다.)
각이 무엇에서 살펴 보자.
다음의 두 입력 데이터 세트를 고려
Set "A" Set "B" AA BB -------- -------- Item 1 Item 3 Item 2 Item 4 Item 3 Item 5 Item 4 Item 6
공지 사항 일부 B에없는 A의 항목 및 그 반대가 있음.
우리는이 같은 SQL 문을 작성하는 경우 이제, LEFT를 사용하여 조인
SELECT * FROM A LEFT JOIN B ON AA = BB
당신은 다음과 같은 결과를 (빈 구멍이 실제로 NULL 마크) 얻을 것이다 :
AA BB -------- -------- Item 1 Item 2 Item 3 Item 3 Item 4 Item 4
당신의 왼쪽 부분에서 AA에서 모든 행, 또는 오히려, 모든 행을 얻을거야 공지 사항 절을 가입 할 수 있습니다.
당신이 권리를 사용하도록 전환하는 경우에 가입 :
SELECT * FROM A RIGHT JOIN B ON AA = BB AA BB -------- -------- Item 3 Item 3 Item 4 Item 4 Item 5 Item 6
당신이 모든 행의 오른쪽 부분에서 얻을 공지 사항 절을 가입 할 수 있습니다.
둘 다의 모든 행을하려는 경우, 당신은 FULL 조인을 사용합니다 :
SELECT * FROM A FULL JOIN B ON AA = BB AA BB -------- -------- Item 1 <-----+ Item 2 | Item 3 Item 3 | Item 4 Item 4 | Item 5 +--- empty holes are NULL's Item 6 | ^ | | | +---------------------+
코멘트에서 제안한 것처럼, 내가 가입 할 수있는 다른 여러 가지 방법을 완료 할 수 있습니다.
INNER로 조인
SELECT * FROM A INNER JOIN B ON AA = BB AA BB -------- -------- Item 3 Item 3 Item 4 Item 4
INNER으로 우리가 실제로 일치하는 행 때문에 가입없이 구멍을 얻을 가입 할 수 있습니다.
크로스 가입 번째 세트로부터 모든 행과 첫 번째 세트에서 모든 행을 일치시켜, 카티 생성물을 생성한다 :
SELECT * FROM A CROSS JOIN B AA BB -------- -------- Item 1 Item 3 ^ Item 1 Item 4 +--- first item from A, repeated for all items of B Item 1 Item 5 | Item 1 Item 6 v Item 2 Item 3 ^ Item 2 Item 4 +--- second item from A, repeated for all items of B Item 2 Item 5 | Item 2 Item 6 v Item 3 Item 3 ... and so on Item 3 Item 4 Item 3 Item 5 Item 3 Item 6 Item 4 Item 3 Item 4 Item 4 Item 4 Item 5 Item 4 Item 6
또한 수행 일치가 없기 때문에 우리가 할 열이 일치를 지정하지 있습니다.
마지막으로, 자연에 가입,이 구문에 우리는 지정하지 않은 열을 열 이름에 일치하지만, 일치하는지 확인합니다. 우리의 인위적인 예에서, 더 열 이름은 동일하지 않지만하자의 열 이름이 두 테이블에 XX를했다이 특정 예를 들어, 우리는 다음과 같은 결과를 얻을 것 말 :
SELECT * FROM A NATURAL JOIN B +----------+------- matches on the names, and then the data | | v v XX XX -------- -------- Item 3 Item 3 Item 4 Item 4
당신이 볼 수 있듯이, 당신은 조인 INNER와 같은 얻을 수 있지만,이 절을 조인의 일치하는 부분을 입력 할 필요가 없습니다.
-
==============================
2.완전 외부는 LEFT OUTER의 노동 조합 가입되어 가입 및 RIGHT OUTER JOIN은.
완전 외부는 LEFT OUTER의 노동 조합 가입되어 가입 및 RIGHT OUTER JOIN은.
(즉, 메이크업 감각을 했습니까?)
설명 좋은 시각적 설명 조인 (왼쪽 하단 전체 외부 조인 설명)
크레딧 C.L.로 이동 CodeProject의에 모팻의 블로그 게시물
-
==============================
3.차이는 타의 추종을 불허하는 행의 행동이다.
차이는 타의 추종을 불허하는 행의 행동이다.
예를 들어, 표 A는 정의 된 가입하는 상 필드의 표 B에 대응되어 있지 않은 행이 있다면, 내부 전체의 행을 포함 할 것이다 합류하면서하지만 NULL로, 모두 행을 생략 할 조인 B. 테이블의 탁월한 행 표 B. viceversa에의 필드에 대한 값
-
==============================
4.아주 간단한 방법으로, 주요 차이점은 다음과 같습니다
아주 간단한 방법으로, 주요 차이점은 다음과 같습니다
INNER는 가입 - 반환 만 일치하는 행. 따라서, 일치하지 않는 행은 포함되지 않습니다.
FULL은 가입 - 반환 우측 표에 아닌 왼쪽에 존재하는 행, 플러스 왼쪽 테이블과하지 않을 권리에 존재하는 행을, 내부 행에 가입 넘어.
-
==============================
5.전체는 다른 테이블에 일치하는 행이없는 경우에도 두 테이블에서 행을 반환합니다 가입 할 수 있습니다. A는 바로 가입처럼 가입 전체이며, 왼쪽은 동시에 가입 할 수 있습니다. 내부는 다른 테이블에서 적어도 1 파트너가 행을 반환합니다 가입 할 수 있습니다.
전체는 다른 테이블에 일치하는 행이없는 경우에도 두 테이블에서 행을 반환합니다 가입 할 수 있습니다. A는 바로 가입처럼 가입 전체이며, 왼쪽은 동시에 가입 할 수 있습니다. 내부는 다른 테이블에서 적어도 1 파트너가 행을 반환합니다 가입 할 수 있습니다.
-
==============================
6.(가) 대상 필드를 조인 내부는 null을 가져 오지 것이다 조인. 일치하는 기록이없는 경우, 원래의 테이블에되지 않습니다.
(가) 대상 필드를 조인 내부는 null을 가져 오지 것이다 조인. 일치하는 기록이없는 경우, 원래의 테이블에되지 않습니다.
-
==============================
7.테이블이 아주 잘 일치하는 것을 의미한다.
테이블이 아주 잘 일치하는 것을 의미한다.
위키 페이지는 여기 작동 방식의 아주 좋은 예를 보여줍니다.
-
==============================
8.테이블 A와 테이블 B를 고려
테이블 A와 테이블 B를 고려
표 A - (키, 이름)
1 데이터 1 2, 데이터 2 4 DATA4 5, Data5
표 B - (키, FKey, 이름)
1, 1, 데이터 2, 2, 데이터 3, NULL, 데이터 4,4, 데이터
내부는 반환 가입
완전 외부 동안 반환에 가입
from https://stackoverflow.com/questions/3022713/difference-between-full-join-inner-join by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 선택 모든 행에 열 값이 고유없는 경우에는 (0) | 2020.05.30 |
---|---|
[SQL] 어떻게 증가없이 오라클 시퀀스의 현재 값을 검색하는? (0) | 2020.05.30 |
[SQL] 어떻게 SQL Server의 소수점 값을 저장하는 방법? (0) | 2020.05.30 |
[SQL] LIKE 대 전체 텍스트 검색 무엇입니까 (0) | 2020.05.30 |
[SQL] SQL 서버 SELECT INTO의 @variable? (0) | 2020.05.30 |