ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL 조인의 작동원리 - How do SQL Joins Work
    Review/ByteByteGo - System Design 2024. 8. 2. 15:32
    반응형

    SQL 조인의 종류

    SQL 조인은 두 개 이상의 테이블에서 데이터를 결합하여 단일 결과 집합을 생성하는 데 사용됩니다. 주요 조인의 종류는 다음과 같습니다:

    INNER JOIN (내부 조인):

    설명: 두 테이블에서 공통된 값을 가진 행만 결합합니다.
    예시 쿼리:

    SELECT A.column1, B.column2
    FROM TableA A
    INNER JOIN TableB B ON A.common_column = B.common_column;

     

    LEFT JOIN (또는 LEFT OUTER JOIN):

    설명: 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 결합합니다. 일치하지 않는 경우 NULL로 표시됩니다.
    예시 쿼리:

    SELECT A.column1, B.column2
    FROM TableA A
    LEFT JOIN TableB B ON A.common_column = B.common_column;

     

    RIGHT JOIN (또는 RIGHT OUTER JOIN):

    설명: 오른쪽 테이블의 모든 행과 왼쪽 테이블의 일치하는 행을 결합합니다. 일치하지 않는 경우 NULL로 표시됩니다.
    예시 쿼리:

    SELECT A.column1, B.column2
    FROM TableA A
    RIGHT JOIN TableB B ON A.common_column = B.common_column;

     

    FULL JOIN (또는 FULL OUTER JOIN):

    설명: 두 테이블에서 일치하는 행을 모두 결합하며, 일치하지 않는 경우에는 NULL로 표시됩니다.
    예시 쿼리:

    SELECT A.column1, B.column2
    FROM TableA A
    FULL JOIN TableB B ON A.common_column = B.common_column;

     

    CROSS JOIN (교차 조인):

    설명: 두 테이블의 모든 행을 결합하여 데카르트 곱을 생성합니다.
    예시 쿼리:

    SELECT A.column1, B.column2
    FROM TableA A
    CROSS JOIN TableB B;

     

    조인 예제

    -- TableA와 TableB가 있다고 가정
    TableA:
    +----+-------+
    | id | name  |
    +----+-------+
    | 1  | John  |
    | 2  | Jane  |
    | 3  | Dave  |
    +----+-------+
    
    TableB:
    +----+---------+
    | id | address |
    +----+---------+
    | 1  | USA     |
    | 2  | UK      |
    | 4  | Canada  |
    +----+---------+
    
    -- INNER JOIN 예제
    SELECT A.name, B.address
    FROM TableA A
    INNER JOIN TableB B ON A.id = B.id;
    -- 결과: John - USA, Jane - UK
    
    -- LEFT JOIN 예제
    SELECT A.name, B.address
    FROM TableA A
    LEFT JOIN TableB B ON A.id = B.id;
    -- 결과: John - USA, Jane - UK, Dave - NULL
    
    -- RIGHT JOIN 예제
    SELECT A.name, B.address
    FROM TableA A
    RIGHT JOIN TableB B ON A.id = B.id;
    -- 결과: John - USA, Jane - UK, NULL - Canada
    
    -- FULL JOIN 예제
    SELECT A.name, B.address
    FROM TableA A
    FULL JOIN TableB B ON A.id = B.id;
    -- 결과: John - USA, Jane - UK, Dave - NULL, NULL - Canada
    
    -- CROSS JOIN 예제
    SELECT A.name, B.address
    FROM TableA A
    CROSS JOIN TableB B;
    -- 결과: John - USA, John - UK, John - Canada, Jane - USA, Jane - UK, Jane - Canada, Dave - USA, Dave - UK, Dave - Canada

     

    반응형

    댓글

Designed by Tistory.