Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발자공부일기

2024-10-17 본문

TIL(Today I Learned)

2024-10-17

JavaCPP 2024. 10. 17. 17:47

여러 번의 연산을 한 번의 SQL 문으로 수행하기 (Subquery)

Subquery란?

다른 쿼리 안에 포함된 쿼리를 의미합니다. 주로 복잡한 질의에서 사용되며, 메인 쿼리(외부 쿼리)의 조건을 도와주는 역할을 합니다. 서브쿼리는 괄호 안에 위치하며, 메인 쿼리가 실행되기 전에 먼저 실행됩니다.

 

Subquery 가 필요한 경우

1.여러번의 연산을 수행해야 할 때

2.조건문에 연산 결과를 사용해야 할 때

3.조건에 Query 결과를 사용하고 싶을 때

select column1, special_column

from ( /* subquery */ select column1, column2 special_column from table1 ) a

 

주문 테이블에서 주문 번호, 음식점명, 음식 준비시간을 가져오기 

SELECT order_id,

           restaurant_name,

           food_preparation_time

FROM

(

SELECT order_id,

restaurant_name,

food_preparation_time

FROM food_orders

) a

 

필요한 데이터가 서로 다른 테이블에 있을 때 조회하기 (JOIN)

JOIN 이 필요한 경우

1. 주문 가격은 주문테이블에 있지만, 어떤 수단으로 결제를 했는지는 결제테이블에 있어요.

2. 주문을 한 사람을 확인하려면, 주문 테이블과 고객 테이블에서 각각 정보를 가져와서 엑셀에서 합쳐줘야 해요.

3. 주문 건별 수수료를 계산하려면 수수료율이 필요한데, 결제 테이블에 있어서 어떻게 연산할 수 있을지 모르겠어요.

 

JOIN 의 기본 구조

-- LEFT JOIN

=>왼쪽 테이블1 의 모든 행을 반환하고, 오른쪽 테이블2 에서 매칭되는 행이 있는 경우 그 데이터를 반환합니다. 만약 오른쪽 테이블에 매칭되는 데이터가 없으면, 해당 칼럼은 NULL로 표시됩니다.

SELECT 조회 할 컬럼

FROM 테이블1 a left join 테이블2 b ON a.공통컬럼명=b.공통컬럼명

 

-- INNER JOIN

=>두 테이블 간에 매칭되는 행(조건을 만족하는 데이터)만 반환합니다.

SELECT 조회 할 컬럼

FROM 테이블1 a inner join 테이블2 b ON a.공통컬럼명=b.공통컬럼명

'TIL(Today I Learned)' 카테고리의 다른 글

2024-10-21  (0) 2024.10.21
2024-10-18  (0) 2024.10.18
2024-10-16  (0) 2024.10.16
2024-10-15  (0) 2024.10.15
시작하며  (0) 2024.10.15