JOIN
- Orders 테이블에서 3번 ShipperID 가 배송하는 주문의 목록을 조회
//JOIN을 사용하지 않은 SQL문
SELECT Shippers.ShipperID, ShipperName, OrderID
FROM Shippers, Orders
WHERE Shippers.ShipperID = Orders.ShipperID AND Shippers.ShipperID = 3;
//JOIN을 사용한 SQL문
SELECT Shippers.ShipperID, ShipperName, OrderID
FROM Shippers INNER JOIN Orders ON Shippers.ShipperID = Orders.ShipperID
WHERE Shippers.ShipperID = 3;
- 배송하는 주문의 수가 60개에서 70개 사이인 Shipper의 이름과 그 주문 수를 조회
SELECT Shippers.ShipperName, COUNT(OrderID) AS numOfOrders
FROM Shippers INNER JOIN Orders ON Shippers.ShipperID = Orders.ShipperID
GROUP BY ShipperName
HAVING numOfOrders BETWEEN 60 AND 70;
- 주문 번호 10248의 제품 이름과 배송 회사의 이름을 출력 (다중 조인)
SELECT Orders.OrderID, Products.ProductName, Shippers.ShipperName
FROM Orders INNER JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID
INNER JOIN Products ON OrderDetails.ProductID = Products.ProductID
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
WHERE Orders.OrderID = 10248;
- OUTER JOIN : NULL 값인 행이 있어도 그 조인 결과를 출력
- LEFT OUTER, RIGHT OUTER, FULL OUTER 가 존재