Notice
Recent Posts
Recent Comments
«   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
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

05 셀프 조인 본문

MSSQL/테이블을 서로 통합하는 조인

05 셀프 조인

빌드이너프 2024. 10. 9. 16:31

셀프 조인(SELF JOIN)

같은 테이블을 사용하는 특수한 조인

 

셀프 조인 주의사항!!

반드시 별칭을 사용해야 한다

별칭을 사용하지 않으면 오류가 발생한다

 

별칭을 사용해 SELF JOIN 한 쿼리

의미 없이 셀프 조인의 실행 결과를 보려고 작성한 쿼리

SELECT
	a.symbol, b.company_name
FROM nasdaq_company AS a
	INNER JOIN nasdaq_company AS b
ON a.symbol = b.symbol;

 

stock 테이블에서 symbol이 'MSFT'인 주식의 일별 가격이 전일 대비 얼마나 올랐는지 확인하는 쿼리

SELECT
	a.[date] AS a_date,
	a.[close] AS a_close,
	b.[date] AS b_date,
	b.[close] AS b_close,
	b.[close] - a.[close] AS diff_close
FROM stock AS a
	LEFT OUTER JOIN stock AS b ON a.date = dateadd(day, -1, b.date)
WHERE a.symbol = 'MSFT' AND b.symbol = 'MSFT'
	AND a.date >= '2021-10-01' AND a.date < '2021-11-01'
	AND b.date >= '2021-10-01' AND b.date < '2021-11-01'

stock 테이블을 2번 사용하는 것이므로 별칭을 사용해 테이블을 구분했다.

ON 문을 보면 a.date = dateadd(day, -1, b.date)으로 왼쪽 테이블의 날짜와 오른쪽 테이블의 하루 뒤의 날짜를 나열했고, a주가와 b주가의 차이를 계산했다.

'MSSQL > 테이블을 서로 통합하는 조인' 카테고리의 다른 글

07 단일 행 서브 쿼리  (1) 2024.10.09
06 서브 쿼리  (1) 2024.10.09
04 교차 조인  (9) 2024.10.09
03 외부 조인  (1) 2024.10.09
02 내부 조인  (1) 2024.10.07