-
MSSQL : INNER JOIN๊ณผ CROSS APPLY์ ์ฐจ์ดDB 2020. 2. 17. 12:57๋ฐ์ํ
๋จผ์ JOIN๊ณผ APPLY๋ ๋น์ทํ ์ฑ์ง์ ๊ฐ์ง JOIN์ผ๋ก
INNER JOIN์ CROSS APPLY์ OUTER APPLY๋ OUTER JOIN๊ณผ ๋น์ทํ ๊ฒฐ๊ณผ๋ฅผ ๋ธ๋ค.
1. APPLY ์ฐ์ฐ์์ ํน์ง
1) APPLY ์ฐ์ฐ์๋ ์ธ๋ถ ํ ์ด๋ธ์ ๋ด๋ถ ํ ์ด๋ธ๊ณผ ์กฐ์ธํ ์ ์์
2) APPLY์ฐ์ฐ์๋ ํ์ชฝ์ด ๋ค๋ฅธ ์ชฝ์ ์๋ ํ ์ด๋ธ์ ๊ฐ ํ์ ๋ํด ํ๊ฐํ๋ ค๋ ํ ์ด๋ธ ํ๊ฐ์์ด ์์ ๋ ์ฌ์ฉํ๊ธฐ ์ข์ ์ต์
(์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ์ผ์ชฝ ํ ์ด๋ธ์ ๊ฐ ํ์ ๋ํด ์ฒ๋ฆฌ๋จ
์ผ์ชฝ ํ ์ด๋ธ์ ๋จผ์ ํ๊ฐ ํ ๋ค์ ์ผ์ชฝ ํ ์ด๋ธ์ ๊ฐ ํ์ ๋ํด ์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ํ๊ฐํ์ฌ ์ต์ข ๊ฒฐ๊ณผ ์งํฉ์ ์์ฑ, ์ต์ข ๊ฒฐ๊ณผ ์งํฉ์๋ ๋ ํ ์ด๋ธ์ ๋ชจ๋ ์ด์ด ํฌํจ๋จ)2. INNER JOIN / CROSS APLLY
1) INNER JOIN
์ ์ฒด ๋ฐ์ดํฐ์์ AND๋ก ํด๋น ๋ฐ์ดํฐ๋ฅผ ๊ฑธ๋ฌ๋
2) CROSS APPLY
์ ํํ ๋ฐ์ดํฐ๋ง ๊ฒ์ํ์ฌ JOINํ๋๋ก ๋์ด์์
INNER JOIN๊ณผ ์ ์ฌํ์ง๋ง ํ ์ด๋ธ ํ๊ฐ ํจ์๋ฅผ SQLํ ์ด๋ธ๊ณผ ์กฐ์ธํ๋๋ฐ ์ฌ์ฉํ ์๋ ์์, CROSS APPLY์ ์ต์ข ์ถ๋ ฅ์ ํ ์ด๋ธ ํ๊ฐ ํจ์์ ์ถ๋ ฅ๊ณผ SQL ํ ์ด๋ธ๊ฐ์ ์ผ์นํ๋ ๋ ์ฝ๋๋ก ๊ตฌ์ฑ4. APPLY์ JOIN์ ์ฐจ์ด์
1) APPLY ์ฐ์ฐ์์ ์ข์ฐ ํผ์ฐ์ฐ์๋ ๋ชจ๋ ํ ์ด๋ธ ์
2) CROSS APPLY์ OUTER APPLY๋ ์กฐ์ธ๋ฐฉ๋ฒ์ผ๋ก APPLY_FUNCTION ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์
ํ์ง๋ง INNER JOIN๊ณผ LEFT OUTER JOIN์ ์กฐ์ธ๋ฐฉ๋ฒ์ผ๋ก APPLY_FUNCTION ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์
๊ฒฐ๋ก
๊ธฐ๋ฅ์ ์ธ ๋ถ๋ถ์ ๊ณ์ ํธ์ถํ๋ ๊ฒฝ์ฐ๋ฉด CROSS JOIN์ ์ฐ๊ฑฐ๋ ๊ฑฐ๊ธฐ์ ๋ง๋ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
CROSS ์กฐ์ธ์ ์ฝ๊ฒ ํจ์๋ํ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๊ณ , ๊ทธ ์์ ์ ์ฒด ๋๋ ๋ถ๋ถ์ ์ฐ์ฐ์์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค !๋ฐ์ํ'DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MSSQL : ์ ์ฅ ํ๋ก์์ (0) 2020.02.19 MSSQL : ๋ทฐ(View) ์ ๋ฆฌ (0) 2020.02.18 SQL : ANSI query ์์์ฟผ๋ฆฌ๋ ? (0) 2020.02.11 MSSQL JOIN ์ ๋ฆฌ : INNER JOIN, OUTER JOIN, CROSS JOIN (1) 2020.02.10 MSSQL์์ ํ ์ด๋ธ ์์ฑ์ ์๊ธฐ๋ [dbo]. ๋ ๋ฌด์์ผ๊น ? (1) 2020.02.05