[F-Lab 66해빗 페이백 챌린지 ]

[F-Lab 페이백 모각코 62일차] SQL join 사용예제 (inner, left, right, outer,full)

everydeveloper 2023. 9. 9. 23:42

Join 별 개념 이미지

 

아래는 CHATGTP4로 생성한 답안입니다.

Q.join 사용 예제에 대해 알려줘 left right outer inner full 경우를 알려줘 ㅎ

A.

데이터베이스의 JOIN에 대한 사용 예제를 아래에 작성하였습니다. 이 예제에서는 두 개의 테이블 Employees와 Departments를 사용하며, 각각은 아래와 같은 데이터를 포함하고 있습니다.

Employees 테이블:

EmployeeID Name DepartmentID

1 Kim 1
2 Lee 2
3 Park NULL
4 Choi 4

Departments 테이블:

DepartmentID DepartmentName

1 Sales
2 Marketing
3 HR
5 Engineering
  1. INNER JOIN:위의 쿼리는 각 직원이 속한 부서의 이름을 반환합니다. 직원이 부서에 속하지 않은 경우(예: Park)나 부서에 직원이 없는 경우(예: Engineering), 결과에 포함되지 않습니다.
  2. SELECT Employees.Name, Departments.DepartmentName FROM Employees INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;
  3. LEFT JOIN (또는 LEFT OUTER JOIN):위의 쿼리는 모든 직원의 이름과 그들이 속한 부서의 이름을 반환합니다. 직원이 부서에 속하지 않은 경우(예: Park), 부서 이름은 NULL로 표시됩니다.
  4. SELECT Employees.Name, Departments.DepartmentName FROM Employees LEFT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;
  5. RIGHT JOIN (또는 RIGHT OUTER JOIN):위의 쿼리는 모든 부서의 이름과 그 부서에 속한 직원의 이름을 반환합니다. 부서에 직원이 없는 경우(예: Engineering), 직원 이름은 NULL로 표시됩니다.
  6. SELECT Employees.Name, Departments.DepartmentName FROM Employees RIGHT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;
  7. FULL JOIN (또는 FULL OUTER JOIN):위의 쿼리는 모든 직원의 이름과 모든 부서의 이름을 반환합니다. 직원이 부서에 속하지 않은 경우나 부서에 직원이 없는 경우, 해당 부분은 NULL로 표시됩니다.
  8. SELECT Employees.Name, Departments.DepartmentName FROM Employees FULL JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

각 쿼리문에서 JOIN이 일어나는 부분인 ON Employees.DepartmentID = Departments.DepartmentID 부분은 두 테이블이 어떤 기준으로 연결되는지를 정의하는 부분입니다. 이 경우에는 DepartmentID가 같은 행끼리 연결됩니다.

Q. 혹시 조인을 사용한 쿼리의 실생활 예제가 잇을까?

A.

조인을 활용한 쿼리는 실생활의 다양한 상황에서 활용됩니다. 예를 들어 온라인 쇼핑몰에서 고객 정보와 주문 정보를 다루는 상황을 생각해봅시다. Customers 테이블과 Orders 테이블이 있고, 각 테이블의 구조는 다음과 같다고 가정합니다.

Customers 테이블:

CustomerID CustomerName ContactNumber

1 Kim 010-1234-5678
2 Lee 010-2345-6789
3 Park 010-3456-7890

Orders 테이블:

OrderID Product Quantity CustomerID

1 Laptop 1 1
2 Smartphone 1 2
3 Headphones 2 1

이제 조인을 사용한 실제 쿼리 예제를 살펴봅시다.

  1. 고객 이름과 그들이 주문한 상품을 알고 싶을 때 (INNER JOIN 사용)위의 쿼리는 각 고객이 주문한 상품을 리스트로 반환합니다.
  2. SELECT Customers.CustomerName, Orders.Product FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
  3. 모든 고객의 이름과 그들이 주문한 상품을 알고 싶을 때 (LEFT JOIN 사용)위의 쿼리는 모든 고객의 이름과 그들이 주문한 상품을 반환합니다. 만약 어떤 고객이 아무런 상품도 주문하지 않았다면, 해당 고객의 주문 상품은 NULL로 반환됩니다.
  4. SELECT Customers.CustomerName, Orders.Product FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

위의 예제들처럼 조인을 사용하면 관련된 정보가 저장된 여러 테이블들을 묶어서 보다 유용한 정보를 얻을 수 있습니다.