w3schools.com 을 참조하여 해석해본 자료입니다.
기본적으로 실행문의 결과값은 사이트에 직접가서 실행해보고 결과를 확인하는것이 좋습니다.
결과값이 너무 큰 경우 일부만 발췌하거나 기록하지 않았습니다.
SQL JOIN
JOIN 절은 두 개 이상의 테이블에 있는 행을 결합하는 데 사용됩니다.
“Orders” 테이블에 있는 선택항목을 살펴 보겠습니다:
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
그런 다음 “Customers” 테이블에서 선택 항목을 살펴보세요:
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 |
“Orders” 테이블의 “CustomerID” 열은 “Customers” 테이블의 “CustomerID”를 나타냅니다.
위의 두 테이블 사이의 관계는 “CustomerID” 열 입니다.
Example
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Order.CustomerID=Customers.CustomerID;
w3schools.com에서 직접 실행해볼것
Result:(일부만 발췌)
Number of Records: 196
OrderID | CustomerName | OrderDate |
---|---|---|
10248 | Wilman Kala | 1996-07-04 |
10249 | Tradição Hipermercados | 1996-07-05 |
10250 | Hanari Carnes | 1996-07-08 |
10251 | Victuailles en stock | 1996-07-08 |
10252 | Suprêmes délices | 1996-07-09 |
10253 | Hanari Carnes | 1996-07-10 |
10254 | Chop-suey Chinese | 1996-07-11 |
10255 | Richter Supermarkt | 1996-07-12 |
10256 | Wellington Importadora | 1996-07-15 |
10257 | HILARIÓN-Abastos | 1996-07-16 |
10258 | Ernst Handel | 1996-07-17 |
총 196개의 Record가 있음
그러면 다음과 같은 결과가 나옵니다.
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taquería | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbköp | 8/12/1996 |
Different Types of SQL JOINs
다음은 SQL에 있는 JOIN의 여러가지 타입입니다:
- (INNER) JOIN: 두 테이블에서 값이 일치하는 레코드를 반환합니다.
- LEFT (OUTER) JOIN: 왼쪽 테이블에서 모든 레코드를 반환하고 오른쪽 테이블에서 일치하는 레코드를 반환합니다.
- RIGHT (OUTER) JOIN: 오른쪽 테이블에서 모든 레코드를 반환하고 왼쪽 테이블에서 일치하는 레코드를 반환합니다.
- FULL (OUTER) JOIN: 왼쪽 또는 오른쪽 테이블에 일치하는 항목이 있으면 모든 레코드를 반환합니다.
Comments