etc./StackOverFlow

INNER JOIN, LEFT JOIN, RIGHT JOIN 및 FULL JOIN의 차이점은 무엇입니까? [복제하다]

청렴결백한 만능 재주꾼 2021. 12. 21. 22:07
반응형

질문자 :Lion King


MySQL 에서 INNER JOIN , LEFT JOIN , RIGHT JOINFULL JOIN 의 차이점은 무엇입니까?



코드 프로젝트 에 대한 이 원본 기사를 읽으면 많은 도움이 될 것입니다. SQL 조인의 시각적 표현 .

대체 텍스트

또한 이 게시물을 확인하십시오. SQL SERVER – 성능 향상 – LEFT JOIN 또는 NOT IN? .

MySQL에서 JOIN과 OUTER JOIN의 차이점 에서 원본을 찾으십시오.


Pranay Rana

SQL JOIN 절은 둘 이상의 테이블 사이의 공통 필드를 기반으로 행을 결합하는 데 사용됩니다.

SQL에서 사용할 수 있는 다양한 유형의 조인이 있습니다.

INNER JOIN : 두 테이블에 일치하는 항목이 있을 때 행을 반환합니다.

LEFT JOIN : 오른쪽 테이블에 일치하는 항목이 없더라도 왼쪽 테이블의 모든 행을 반환합니다.

RIGHT JOIN : 왼쪽 테이블에 일치하는 항목이 없더라도 오른쪽 테이블의 모든 행을 반환합니다.

FULL JOIN : 왼쪽 및 오른쪽 외부 조인의 결과를 결합합니다.

조인된 테이블은 두 테이블의 모든 레코드를 포함하고 양쪽에서 누락된 일치 항목에 대해 NULL을 채웁니다.

SELF JOIN : 테이블이 두 개의 테이블인 것처럼 테이블을 자신에 조인하여 SQL 문에서 적어도 하나의 테이블 이름을 임시로 바꿉니다.

CARTESIAN JOIN : 두 개 이상의 조인된 테이블에서 레코드 세트의 데카르트 곱을 반환합니다.

세부 정보에서 처음 4개의 조인을 각각 취할 수 있습니다.

다음 값을 가진 두 개의 테이블이 있습니다.

표A

 id firstName lastName ....................................... 1 arun prasanth 2 ann antony 3 sruthy abc 6 new abc

테이블B

 id2 age Place ................ 1 24 kerala 2 24 usa 3 25 ekm 5 24 chennai

........................................................................... ..................

내부 조인

참고 : 두 테이블의 교차점을 제공합니다. 즉, TableA 및 TableB 행이 공통적으로 가지고 있습니다.

통사론

 SELECT table1.column1, table2.column2... FROM table1 INNER JOIN table2 ON table1.common_field = table2.common_field;

샘플 테이블에 적용하십시오.

 SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place FROM TableA INNER JOIN TableB ON TableA.id = TableB.id2;

결과

 firstName lastName age Place .............................................. arun prasanth 24 kerala ann antony 24 usa sruthy abc 25 ekm

왼쪽 조인

참고 : TableA에서 선택한 모든 행과 TableB에서 선택한 공통 행을 제공합니다.

통사론

 SELECT table1.column1, table2.column2... FROM table1 LEFT JOIN table2 ON table1.common_field = table2.common_field;

샘플 테이블에 적용하십시오.

 SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place FROM TableA LEFT JOIN TableB ON TableA.id = TableB.id2;

결과

 firstName lastName age Place ............................................................................... arun prasanth 24 kerala ann antony 24 usa sruthy abc 25 ekm new abc NULL NULL

오른쪽 조인

참고 : TableB에서 선택한 모든 행과 TableA에서 선택한 공통 행을 제공합니다.

통사론

 SELECT table1.column1, table2.column2... FROM table1 RIGHT JOIN table2 ON table1.common_field = table2.common_field;

샘플 테이블에 적용하십시오.

 SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place FROM TableA RIGHT JOIN TableB ON TableA.id = TableB.id2;

결과

 firstName lastName age Place ............................................................................... arun prasanth 24 kerala ann antony 24 usa sruthy abc 25 ekm NULL NULL 24 chennai

전체 조인

참고 : 두 테이블에서 선택한 모든 값을 반환합니다.

통사론

 SELECT table1.column1, table2.column2... FROM table1 FULL JOIN table2 ON table1.common_field = table2.common_field;

샘플 테이블에 적용하십시오.

 SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place FROM TableA FULL JOIN TableB ON TableA.id = TableB.id2;

결과

 firstName lastName age Place ............................................................................... arun prasanth 24 kerala ann antony 24 usa sruthy abc 25 ekm new abc NULL NULL NULL NULL 24 chennai

흥미로운 사실

  • INNER 조인의 경우 순서는 중요하지 않습니다.
  • (LEFT, RIGHT 또는 FULL) OUTER 조인의 경우 순서가 중요합니다.

이 링크를 확인하는 것이 좋습니다. 가입 순서에 대한 흥미로운 세부 정보를 제공합니다.


Arunprasanth K V

INNER JOIN 은 제공된 ON 절을 기반으로 두 테이블 간에 공통되는 모든 레코드를 가져옵니다.

LEFT JOIN 은 연결된 LEFT에서 모든 레코드를 가져오고 오른쪽 테이블에서 관련 레코드를 가져오지만 RIGHT 테이블에서 일부 열을 선택한 경우 관련 레코드가 없는 경우 이러한 열에는 NULL이 포함됩니다.

RIGHT JOIN 은 위와 같지만 RIGHT 테이블의 모든 레코드를 가져옵니다.

FULL JOIN 은 두 테이블의 모든 레코드를 가져와서 반대쪽 테이블에 관련 레코드가 없는 열에 NULL을 넣습니다.


Brian Leeming

출처 : http:www.stackoverflow.com/questions/5706437/whats-the-difference-between-inner-join-left-join-right-join-and-full-join

반응형