
테이블은 RDBMS이기 때문에 일반적으로 집합의 형태를 띈다.
아래의 사진은 JOIN을 벤다이어 그램 형태로 반환한 것이다.
테이블간의 관계도 사진과 같은 집합으로 생각하면 쿼리문을 짤때 이해하기 쉬울 것 이다.

1. 최대한 작게 만들어 놓고 JOIN 하자.
“작게 만들어 놓는다”의 의미는
선 필터링 후 추출을 의미한다.
먼저 필터링을 하여 가져오면 그만큼의 리소스를 줄일 수 있기 때문!
아래 코드를 살펴보자.
코드에서는 WITH 구문으로 블록 customer ,order_info를 생성해 주었다.
생성에서 끝난것이 아닌
customer 블록은 customer_id가 1인 것들만 나올 수 있게,
order_info 블도 customer_id가 1인 것들만 나올 수 있게 필터링을 걸어 리소스를 최소한으로 가져갔다.

위와 같이 WITH구문으로 임시집합 customer ,order_info을 생성했지만
각 각 테이블의 전체데이터를 끌고온 뒤,
마지막 WHERE절에서 필터링을 했기 때문에 리소스를 많이 사용하게 됨.
