MYSQL 조인
JOIN 절은 여러 개 테이블의 행을 결합합니다.
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
이렇게 두 개의 테이블이 있으면 두 테이블은 CustomerID를 통해 관계를 나타냅니다.
내부 조인을(INNER JOIN) 통해서
INNER JOIN 구문
SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;
예시
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
하게 되면 주문 테이블과 고객 테이블의 같은 ID를 가진 것을 조인하여 조회를 합니다.
즉 Order테이블에 ID와 Customers 테이블에 CustomerName 그리고 Order테이블에 Date를 추출하고
Orders와 Customers를 고객 ID가 같은 것을 토대로 출력해줍니다.
이렇듯이 JOIN에는 여러 유형이 있습니다.
- 첫 째, 내부 조인은 위에서 봤듯이 값이 일치하는 레코드를 반환합니다.
- 둘 째, LEFT(OUTER) 조인은 왼쪽 테이블에서 모든 레코드를 반환하고 오른쪽 테이블에서는 일치 레코드를 반환합니다.
- 셋 째, RIGTH 조인은 오른쪽 테이블에서 모든 레코드를 반환하고 왼쪽 테이블에서 일치하는 레코드 반환
- 넷 째, 풀 조인은 왼쪽 또는 오른쪽 테이블에 일치하는 항목이 있으면 모든 레코드를 반환합니다.
무슨말인지 어렵기 때문에 그림을 보자면
<이미지 출처: w3schools>
다음 포스팅으로 LEFT JOIN에 대해 알아보도록 하겠습니다.