JOIN

JOIN은 두 개 이상의 테이블에서 데이터를 연결하여 하나의 결과 집합으로 반환하는 데이터베이스의 연산입니다.

JOIN을 사용하면 각 테이블의 행들을 일치하는 조건을 기반으로 결합할 수 있습니다.

Oracle SQL에서 제공하는 JOIN 종류는 다음과 같습니다:

  1. INNER JOIN
    • 두 테이블에서 JOIN 조건을 만족하는 레코드들만을 반환하는 JOIN입니다.
    • Syntax: SELECT … FROM table1 INNER JOIN table2 ON 조인 조건
  2. LEFT JOIN (LEFT OUTER JOIN)
    • 왼쪽 테이블의 모든 레코드와, 오른쪽 테이블에서 JOIN 조건을 만족하는 레코드를 반환하는 JOIN입니다.
    • Syntax: SELECT … FROM table1 LEFT JOIN table2 ON 조인 조건
  3. RIGHT JOIN (RIGHT OUTER JOIN)
    • 오른쪽 테이블의 모든 레코드와, 왼쪽 테이블에서 JOIN 조건을 만족하는 레코드를 반환하는 JOIN입니다.
    • Syntax: SELECT … FROM table1 RIGHT JOIN table2 ON 조인 조건
  4. FULL OUTER JOIN
    • 왼쪽 테이블과 오른쪽 테이블 모두에서 JOIN 조건을 만족하는 레코드들을 반환하는 JOIN입니다.
    • Syntax: SELECT … FROM table1 FULL OUTER JOIN table2 ON 조인 조건
  5. CROSS JOIN (CARTESIAN JOIN)
    • 두 테이블의 모든 레코드들끼리 JOIN하여 결과를 반환하는 JOIN입니다.
    • Syntax: SELECT … FROM table1 CROSS JOIN table2
  6. SELF JOIN
    • 한 테이블 내에서 JOIN 조건을 이용하여 자기 자신을 JOIN하는 것입니다.
    • Syntax: SELECT … FROM table1 t1 INNER JOIN table1 t2 ON 조인 조건 WHERE 조건
  7. NATURAL JOIN
    • 두 개의 테이블에서 동일한 이름을 가진 모든 열을 기준으로 자동으로 조인하는 방식입니다.
    • 열 이름이 바뀌거나 추가될 경우 쉽게 오류가 발생할 수 있어서 권장하지 않습니다.
    • 대신, 명시적인 조인 조건을 지정하는 INNER JOIN 또는 JOIN USING을 사용하는 것이 좋습니다.
    • 이러한 방식은 조인 조건이 명시적이기 때문에 오류 발생 가능성이 적고 유지 보수가 쉽다는 장점이 있습니다.