Day 27
๊ด๊ณํ ๋ชจ๋ธ์์์ ๊ด๊ณํ์ ์ํ ์งํฉ๋ก ์ ๊ด๊ณํ ์ด๋ก ์์ ๋์ด์๊ณ , ๊ทธ ์๋ฏธ๋ ์ค์ง์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์งํฉ์ผ๋ก ๊ฐ์ฃผํด ๋ค๋ฃจ๊ธฐ ์ฝ๊ฒ ํ์๋ ๊ฒ์ด ์ง๋์ง ์๋๋ค
SQL๊ณผ ์งํฉ
์งํฉ์ ์ดํดํ๋๋ฐ ๊ฐ์ฅ ์ ์ฌํ๊ฑด ๋ญ๋๋ญ๋ํด๋ ๋ฒค๋ค์ด์ด๊ทธ๋จ์ด๋ค ๋ฒค๋ค์ด์ด๊ทธ๋จ์์๋ ํ๋์ ์์ด ๊ณง ํ๋์ ์งํฉ์ด๋ค ์ ์์๋ ๋ช ๊ฐ์ง ์์๊ฐ ์๋ค ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ ์ด๋ธ์ ํ์ด ์์์์ ์์๊ฐ ๋๋ค ๊ทธ๋์ ์๋ฅผ ๋ค์ด์ SELECT๋ฅผ ์คํํ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฐ๊ณผ๋ฅผ ์งํฉ์ผ๋ก ๋ง๋ค์ด์ ์ค ๋ ๊ทธ ํ์ด ์งํฉ์ ๋ค์ด๊ฐ์๋ ๊ทธ๋ฐ ๋๋์ด๋ค
UNION ์ผ๋ก ํฉ์งํฉ ๊ตฌํ๊ธฐ
ํฉ์งํฉ์ ์งํฉ์ ๋ํ๋ค๋ ์๋ฏธ์ด๋ค
[1,2,3] ์์๋ฅผ ๊ฐ์ง A๋ผ๋ ์งํฉ์ด ์กด์ฌํ๊ณ , [4,5,6] ์์๋ฅผ ๊ฐ์ง B๋ผ๋ ์งํฉ์ด ์กด์ฌํ๊ณ ์์ ๋ 2๊ฐ์ ์งํฉ์ ํฉํ๊ฒ๋๋ฉด
ํฉ์งํฉ์ด๋ผ๊ณ ํ๊ณ UNION ํค์๋๋ฅผ ์ฌ์ฉํด์ A UNION B ์ด๋ ๊ฒ ์ฌ์ฉ
์ด๋ ๊ฒ ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ๋ ๊ฐ์ SELECT ์ฌ์ด์ ํค์๋๋ฅผ ๋ฃ์ด์ค์ ์งํฉ ์ฐ์ฐ์ ์งํํ ์ ์๋ค UNION ํค์๋๋ฅผ ์ฌ์ฉํด์ ํฉ์งํฉ์ ์งํํ ๋ ํ์ธํด์ผํ๋ ์ ์ด ์๋๋ฐ ๊ทธ๊ฑด ๋ฐ๋ก ์ด ๊ตฌ์ฑ์ด๋ค ์ด ๊ตฌ์ฑ์ด ๋ค๋ฅธ ํ ์ด๋ธ์ UNION์ผ๋ก ๋ฌถ์ ์ ์๋ค๋์ ์ ๊ธฐ์ตํ์ ํ์ง๋ง ๋ฐฉ๋ฒ์ด ์์ ํ๊ฒ ์๋ ๊ฒ์ ๋ ์๋๋ค -> ์์ ์์์์๋ * ์ ์ฌ์ฉํด์ ๋ชจ๋ ์ด์ ๊ฐ์ง๊ณ ํฉ์งํฉ์ ์งํํ๋ ค๋ค๊ฐ ๋ค๋ฅธ ์ด์์ ์๋ฌ๋๋ฐ, ์ด์ ๋ฐ๋ก ์ง์ ํด์ ํ๋ฉด ๊ฐ๋ฅํ๋ค๋ ๊ฒ
SELECT ๋ช ๋ น๋ค์ UNION์ผ๋ก ๋ฌถ์ ๋ ๋์ด ์์๋ ํฉ์งํฉ์ ๊ฒฐ๊ณผ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค ๋ฐ๋ผ์ order by๋ ์ฃผ์ํด์ ์ฌ์ฉํด์ค์ผํ๋ค
UNION์ ์ฌ์ฉํ ๋์ ORDER BY
UNION์ผ๋ก SELECT ๋ช ๋ น์ ๊ฒฐํฉํด ํฉ์งํฉ์ ๊ตฌํ๋ ๊ฒฝ์ฐ, ๊ฐ SELECT ๋ช ๋ น์ ORDER BY ๋ฅผ ์ง์ ํด ์ ๋ ฌํ ์๋ ์๋ค ORDER BY ๋ฅผ ์ง์ ํ ๋๋ ๋ง์ง๋ง SELECT ๋ช ๋ น๋ง ์ง์ ํ๋๋ก ํ๋ค
-- ์ฒซ ๋ฒ์งธ SELECT ๋ช
๋ น์ ORDER BY๋ฅผ ์ง์ ํ ์ ์๋ค
SELECT a FROM sample71_a ORDER BY a
UNION
SELECT b FROM sample71_b;
์ด๋ฐ ์ผ์ด์ค : ํฉ์งํฉ์ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋ง์ง๋ง SELECT ๋ฌธ์ ORDER BY ๋ฅผ ์ง์ ํด์ผ ํ๋ค ๊ทธ๋์ ์ ์์ ์ธ order by๋
SELECT a FROM Sample71_a
UNION
SELECT c FROM sample71_b ORDER BY c;
์ด๋ ๊ฒ UNION์ผ๋ก SELECT๋ฅผ ์ฐ๊ฒฐํ ๊ฒฝ์ฐ, ๊ฐ์ฅ ๋ง์ง๋ง SELECT ๋ช ๋ น์ ๋ํด์๋ง ORDER BY ๊ตฌ๋ฅผ ์ง์ ํ๊ณ ORDER BY ๊ตฌ์ ์ง์ ํ๋ ์ด์ ๋ณ๋ช ์ ๋ถ์ฌ ์ด๋ฆ์ ์ผ์น ์ํจ๋ค
UNION ALL
UNION์ด๋ผ๋ ํฉ์งํฉ์ ๊ฒน์น๋ ๋ถ๋ถ์ ๊ณตํต์์๋ฅผ ํ๋๋ง, ์ค๋ณต์ ์ ๊ฑฐํ ์ํ๋ก ์ถ๋ ฅํด์ค๋ค ํ์ง๋ง ์ค๋ณต์ ์ ๊ฑฐํ์ง ์์ ์ํ์์ ๋ชจ๋ ํฉ์น ๊ฐ๋ค์ ๋ด์ผํ ํ์๊ฐ ์์ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ์ด UNION ALL ์ด๋ผ๋ ๋ช ๋ น์ด๋ค SELECT ์ ๋์ง์ด๋ณด๋ฉด ์ค๋ณต์ ์ ๊ฑฐํ๊ธฐ ์ํด์๋ DISTINCT์ ์ฌ์ฉํ๊ณ ๊ธฐ๋ณธ๊ฐ์ ALL์ด์๋ค ํ์ง๋ง ์ ํํ๊ฒ ๋ฐ๋๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค UNION ๋ช ๋ น์ด์ ๊ธฐ๋ณธ์ผ๋ก DISTINCT ์ฒ๋ฆฌ๊ฐ ๋์ด์์ผ๋ฉฐ, ๋ฐ๋ก ๋ชจ๋ ๊ฐ์ ๋ณด๊ธฐ ์ํด์๋ UNION ALL์ด๋ผ๋ ํค์๋๋ก ๋ณ๊ฒฝํด์ ์ฌ์ฉํด์ผํ๋ค ๊ทธ๋ ๋ค๊ณ UNION DISTINCT๊ฐ ์๋ ๊ฑด ์๋๊ณ ๋จ์ง ๊ฐ๋ ์ค๋ช ์ ์ํด์ ๋งํ๋ค๋ ๊ฒ ์ฑ๋ฅ์ ์ธ ๋ฉด์์๋ ๋ฌด์กฐ๊ฑด UNION์ด ๋น ๋ฅด๋ค๋ ๊ฒ์ ์๋๊ณ UNION์์๋ ์ด๋ฏธ ์กด์ฌํ๋ ๊ฐ์ธ์ง๋ฅผ ๊ฒ์ฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ณต๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ UNION ALL์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฑ๋ฅ์์ ์ข์ ์ฑ๋ฅ์ ๋ฝ๋ธ๋ค
๊ต์งํฉ๊ณผ ์ฐจ์งํฉ
๊ต์งํฉ์ INTERSECT, ์ฐจ์งํฉ์ MINUS์ ํตํด์ ์ฌ์ฉ ๊ต์งํฉ์ ์ฐ๋ฆฌ๊ฐ ์๋ ์ ๋ง ๊ณตํต๋๋ ๋ถ๋ถ๋ง ๊ณตํต์ผ๋ก ๋ฝ์๋ด๋ ๊ณผ์ ์ ์๋ฏธํ๊ณ ์ฐจ์งํฉ์ ์งํฉ์์ ๋ค๋ฅธ์ชฝ์ ์งํฉ์ ์ ๊ฑฐํ๊ณ ๋จ์ ๋ถ๋ถ์ ์๋ฏธํ๋ค ์ด๋ ๊ฒ ํค์๋๋ผ๋ ์๊ณ ์์ผ๋ฉด ์ธ์ ๋ ์ฌ์ฉ๊ฐ๋ฅ ํ๋๊น ์์๋์ -> ํ์ง๋ง MySQL์์๋ ์ง์์ ์ํ๋ค๋ ๊ฑฐ..!
Last updated
Was this helpful?