충분히 쌓여가는
05 셀프 조인 본문
셀프 조인(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 |