2024-03-27(SQL)

2024. 3. 27. 17:40TIL

서브쿼리: 쿼리 안의 쿼리

사용 이유: 여러 연산 등이 들어가면 복잡해질 수 있는 부분을 서브쿼리가 구조화시키고 구분할수 있게 도와줌

(

select restaurant_name, avg(price/quantity) price_per_plate

from food_orders

group by

) a 라는 서브쿼리에서 avg(price/quantity) 의 계산식을 price_per_plate라는 별명으로 넣어주고

그 서브쿼리를 포함하는  서브쿼리 b 에서  price_per_plate의 값에 따른 값들(0.005,0.01,0.02)을 ratio_of_add 라는 별명으로 넣어준다. 결과적으로 from은 조회하고싶은 테이블을 불러오는것이므로 food_orders-> (restaurant_name,price_per_plate)  순으로 불러와지므로 

select restaurant_name, price_per_plate*ratio_of_odd  from (restaurant_name,price_per_plate) from food_orders

순으로 데이터가 계산된다고 볼수 있음 이처럼 서브쿼리를 이용하면 복잡한 연산을 간편하게 정리할수 있다.

 

 

 

필요한 데이터가 서로 다른 테이블에 있을때는 JOIN을 사용한다

 

LEFT JOIN과 INNER JOIN

 

 

LEFT JOIN 예시:

왼쪽에 있는 food_orders의 모든 컬럼을 조회하고 payments의 테이블에 없는 값이 있으면 null로 표기,on뒤에 있는  food_orders의 테이블의 order.id컬럼과 payments테이블의 order.id를 공통된 기준으로 삼는다(=)

왼쪽에 있는 food_orders 테이블을 orders.id 컬름을 기준으로 payments의 테이블을 합친다. LEFT JOIN을 사용했기때문에 NULL 값이 존재하는것을 알수 있다

 

INNER JOIN 예시:

INNER JOIN을 사용했기때문에 LEFT JOIN과는 달리  LEFT JOIN을 사용했을시에 NULL이 들어있는 데이터는 조회되지 않는다

'TIL' 카테고리의 다른 글

GITHUB의 기초 문법  (0) 2024.04.15
2024-03-29(SQL)  (1) 2024.03.29
2024-03-26(SQL)  (0) 2024.03.26
2024-03-25(SQL)  (0) 2024.03.25
2024-03-22(SQL)  (0) 2024.03.22