
A테이블에 값이 없더라도 모두 조회되는 경우 이다.

위와 같이 B에는 데이터가 없더라도 A에만 있는 데이터를 불러온다.

JOIN의 기본구조
-- LEFT JOIN from 테이블1 a left join 테이블2 b on a.공통컬럼명=b.공통컬럼명 -- 테이블1에 a라는 as를 줄 수 있다./그럼으로써 컬럼을 쉽게 불러올 수 있다.!---INNER JOIN select조회 할 컬럼 from 테이블1 a inner join 테이블2 b on a.공통컬럼명=b.공통컬럼명
JOIN 예시 - 고객의 주문 식당 조회하기
select * from food_orders a left join payments b on a.order_id=b.order_id where cuisine_type='Korean'
- 아래 사진처럼 food_orders와 payments테이블이 order_id의 공통된 컬럼으로 묶였다.
- 음식점 타입이 'Korean'인 food_orders와 payments테이블 두개의 컬럼을 JOIN하였다.
select뒤에 작성하는 컬럼명은 join할때 사용하였던 a. 또는 b.의 Alias를 붙여 사용해준다.select a.order_id, a.restaurant_name, a.price, b.pay_type, b.vat from food_orders a left join payments b on a.order_id=b.order_id where cuisine_type='Korean'

Subquery와 JOIN을 활용한 예시
- 50세 이상 고객의 연령에 따라 경로 할인율을 적용하고, 음식 타입별로 원래 가격과 할인 적용 가격 합을 구하기
(조회 컬럼 : 음식 타입, 원래 가격, 할인 적용 가격, 할인 가격)
할인 : 나이-50 '' 0.005
- 고객 정보가 없는 경우도 포함하여 조회, 할인 금액이 큰 순서대로 정렬
select cuisine_type, sum(price) "원래 가격", sum(price)-sum(discount_price) "할인 적용 가격", sum(discount_price) "할인 가격" from ( select a.cuisine_type, price, price*((b.age-50)*0.005) discount_price #50세 이상 할인율 연산 컬럼 생성 from food_orders a inner join customers b on a.customer_id=b.customer_id where b.age>=50 # 음식주문과 고객테이블을 INNER JOIN하며 나이가 50이상인 조건설정 ) t group by 1 # 음식 타입을 기준으로 카테고리화하 order by 4 desc # 할인가격을 내림차순(desc)로 높은 순 부터 조회한다.