[Database] 조인 검색 - JOIN


조인 검색

  • 여러개의 테이블을 연결하여 데이터를 검색하는 것
  • 조인 속성
    • 테이블을 연결해주는 속성
    • 속성의 이름은 달라도 됨
    • 속성의 도메인은 같아야 함
    • 외래키를 조인 속성으로 이용


  • 조인 검색 SQL 문
    • FROM 절 : 검색에 필요한 모든 테이블을 나열
    • WHERE 절 : 조인 속성의 값이 같아야 함을 의미하는 조인 조건을 제시
    • 속성의 이름 앞에 소속된 테이블의 이름을 표시
    • 테이블 이름과 속성이름은 점( . )으로 연결
      • 예 : orders.item : 주문테이블(orders)의 item 속성
  • apple 고객이 주문한 제품의 이름을 검색하시오.
    • 필요한 테이블 : orders, items
    • ‘apple’ 검색 조건 : orders.customer = ‘apple’
    • 주문한 제품 검색 조건 : orders.item = items.code
    • 제품의 이름 : items.name
    • Orders 와 Items 테이블


SELECT items.name
FROM orders, items
WHERE orders.customer='apple' AND orders.item=items.code;


  • 등급( customer.grade )이 Gold인 고객의 이름( customer.name ), 구매한 상품 코드 ( orders.item ), 수량 ( orders.qty )와 주문일 ( orders.date )를 검색하시오.
    • 필요한 테이블 : customer, orders
    • Gold 고객 검색 조건 : customer.grade = ‘Gold’
    • 고객의 주문 검색 조건 : customer.account = orders.customer
    • Customer와 Orders 테이블


SELECT customer.name, orders.item, orders.qty, orders.date
FROM customer, orders
WHERE customer.grade='Gold' AND customer.account=orders.customer;   


  • 등급( customer.grade )이 Gold인 고객의 이름( customer.name ), 구매한 상품명 ( items.name ), 수량 ( orders.qty )와 주문일 ( orders.date )를 검색하시오.
    • 필요한 테이블 : customer, items, orders
    • Gold 고객 검색 조건 : customer.grade = ‘Gold’
    • 고객의 주문 검색 조건 : customer.account = orders.customer
    • 주문한 상품의 이름 검색 조건 : orders.item = items.code
    • Customer, Items, Orders 테이블


SELECT customer.name, items.name, orders.qty, orders.date
FROM customer, items, orders
WHERE customer.grade='Gold' AND customer.account=orders.customer
AND Items.code=orders.item;