MySQL 에서 INNER JOIN
, LEFT JOIN
, RIGHT JOIN
및 FULL JOIN
의 차이점은 무엇입니까?
질문자 :Lion King
코드 프로젝트 에 대한 이 원본 기사를 읽으면 많은 도움이 될 것입니다. 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
'etc. > StackOverFlow' 카테고리의 다른 글
로그아웃했다가 다시 로그인하지 않고 .bashrc 설정을 다시 로드하는 방법은 무엇입니까? (0) | 2021.12.21 |
---|---|
Git에서 파일에 대한 변경 사항을 추적하고 무시하는 방법은 무엇입니까? (0) | 2021.12.21 |
배열 반복에 "for...in"을 사용하는 것이 나쁜 생각인 이유는 무엇입니까? (0) | 2021.12.20 |
이동 의미론이란 무엇입니까? (0) | 2021.12.20 |
CSS 삼각형은 어떻게 작동합니까? (0) | 2021.12.20 |