MySQL 정리 - JOIN - 여러 데이블 조립하기

 


JOIN (INNER JOIN) - 내부조인

  • 양쪽 모두에 값이 있는 행(NOT NULL) 반환

    ex) SELECT * FROM Categories C

    JOIN Products P ON C.CategoryID = P.CategoryID;
  • INNER 는 선택사항

  • ambiguous : 모호하다.

    같은 컬럼일 경우에는 어떤 테이블의 컬럼인지 구분 해주기!

  • 여러 테이블을 JOIN 할 수 있다.

  • JOIN 한 테이블 GROUP 할 수 있다.

SELF JOIN

  • 같은 테이블끼리 JOIN 할 수 있다.

LEFT / RIGHT JOIN(OUTER JOIN) - 외부조인

  • 반대쪽에 데이터가 있든 없든 (NULL), 선택된 방향에 있으면 출력 - 행 수 결정

  • OUTER 는 선택사항 

    ex) SELECT

    E1.EmployeeID, CONCAT_WS(' ', E1.FirstName, E1.LastName) AS Employee, E2.EmployeeID, CONCAT_WS(' ', E2.FirstName, E2.LastName) AS NextEmployee FROM Employees E1 LEFT JOIN Employees E2 ON E1.EmployeeID + 1 = E2.EmployeeID ORDER BY E1.EmployeeID;

CROSS JOIN - 교차조인

  • 조건없이 모든 조합 반환(A * B)

    ex) SELECT

    E1.LastName, E2.FirstName FROM Employees E1 CROSS JOIN Employees E2 ORDER BY E1.EmployeeID;


댓글