[TIL] 24-10-10
1. 여러번의 연산을 한 번의 SQL 문으로 수행하기(Subquery)
예시 SQL문
SELECT order_id, restaurant_name, IF(food_preparation_time>=25,food_preparation_time-25,0) over_time
FROM food_orders
Subquery를 이용한 예시 SQL문
SELECT order_id, restaurant_name, IF(over_time>=0, over_time, 0) over_time
FROM
(
SELECT order_id, restaurant_name, food_preparation_time-25 over_time
FROM food_orders
) a
Subquery를 사용하는 이유는 간단하고 보기 쉽게 하기위해
2. 필요한 데이터가 서로 다른 테이블에 있을때 조회하기(JOIN)
JOIN문을 이용하는 두가지 방법은 LEFT JOIN, INNER JOIN이다
LEFT JOIN
공통 컬럼을 기준으로, 다른 테이블에 없더라도 조회한다.
SELECT *
FROM food_orders LEFT JOIN payments ON food_orders.order_id=payments.order_id
food_orders의 order_id를 기준으로 foode_oders와 payments를 조회한다.
payments에 없는 order_id라도 food_oders의 정보를 불러온다.
INNER JOIN
공통 컬럼을 기준으로, 두 테이블 모두에 있는 값만 조회한다.
SELECT *
FROM food_orders INNER JOIN payments ON food_orders.order_id=payments.order_id
food_orders와 payments에 공통으로 존재하는 order_id의 정보를 불러온다.
별명을 붙여 JOIN문 이용하기
SELECT *
FROM food_orders f LEFT JOIN payments p ON f.order_id=p.order_id
별명을 짓고 SQL문을 작성하면 편하게 이용 가능