[웹 서비스 개발] DB_Table_Join_2024_posted

김광일·2024년 11월 15일

웹 서비스 개발

목록 보기
32/45

일자 : 12주차 1차시

[1] MySQL 테이블 조인 (Joining Tables)

  • JOIN 절은 두 개 이상의 테이블에서 관련 열을 기반으로 행을 결합하는 데 사용된다.

1) Orders 테이블

OrderID (주문 ID)CustomerID (고객 ID)OrderDate (주문 날짜)
1030821996-09-18
10309371996-09-19
10310771996-09-20

2) MySQL에서 지원하는 조인 유형

  • INNER JOIN: 두 테이블에서 일치하는 값이 있는 레코드만 반환.
  • LEFT JOIN: 왼쪽 테이블의 모든 레코드와 오른쪽 테이블에서 일치하는 레코드를 반환.
  • RIGHT JOIN: 오른쪽 테이블의 모든 레코드와 왼쪽 테이블에서 일치하는 레코드를 반환.
  • CROSS JOIN: 두 테이블의 모든 조합을 반환.

3) Customers 테이블

CustomerID (고객 ID)CustomerName (고객 이름)ContactName (담당자 이름)Country (국가)
1Alfreds FutterkisteMaria AndersGermany
2Ana Trujillo Emparedados y heladosAna TrujilloMexico
3Antonio Moreno TaqueríaAntonio MorenoMexico

[2] INNER JOIN

  • INNER JOIN 키워드는 두 테이블에서 일치하는 값을 가진 레코드를 선택한다.

1) 예시

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

2) MySQL INNER JOIN 예제

// 고객 정보를 포함한 모든 주문을 선택하는 SQL 문
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

[3] LEFT JOIN

  • LEFT JOIN 키워드는 왼쪽 테이블의 모든 레코드와 오른쪽 테이블에서 일치하는 레코드를 반환한다.

1) LEFT JOIN 구문

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

2) LEFT JOIN 예제

// 모든 고객과 그들의 주문(있는 경우)을 선택하는 SQL 문
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;

[4] RIGHT JOIN

  • RIGHT JOIN 키워드는 오른쪽 테이블의 모든 레코드와 왼쪽 테이블에서 일치하는 레코드를 반환한다.

1) RIGHT JOIN 구문

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

2) RIGHT JOIN 예제

// 모든 직원과 그들이 주문한 (있는 경우) 주문을 반환하는 SQL 문
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;

[5] FULL OUTER JOIN

  • FULL OUTER JOIN 키워드는 왼쪽 테이블 또는 오른쪽 테이블에서 일치하는 레코드와 모든 레코드를 반환한다.
  • MySQL은 FULL OUTER JOIN을 직접 지원하지 않으므로 LEFT JOIN과 RIGHT JOIN을 UNION으로 결합하여 동일한 결과를 얻는다.

[6] SELF JOIN

  • Self Join은 하나의 테이블이 스스로와 조인되는 형태의 일반적인 조인이다.

1) Self Join 구문

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;

2) Self Join 예제

// 동일한 도시의 고객을 매칭하는 SQL 문
SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City
ORDER BY A.City;

profile
안녕하세요, 사용자들의 문제 해결을 중심으로 하는 프론트엔드 개발자입니다. 티스토리로 전환했어요 : https://pangil-log.tistory.com

0개의 댓글