[SQL] ์งˆ์˜ ๋ณ‘ํ•ฉ: union

[์›๋ณธ ๋งํฌ]

union์€ select์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” SQL ๋ฌธ๋ฒ•์š”์†Œ๋‹ค.

ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์€ PostgreSQL์ด๋‹ค.
ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•  ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
์ตœ๋Œ€ํ•œ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ตฌ์„ฑํ–ˆ๋‹ค. ๊ธฐ๋ณธํ‚ค์ธ id์™€ ๋ฌธ์ž์—ด ์ปฌ๋Ÿผ ํ•˜๋‚˜๋ฟ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋Š” ์ด๋ ‡๊ฒŒ ๋„ฃ์–ด๋†จ๋‹ค ๊ฐ€์ •ํ•œ๋‹ค.

๊ทธ๋Ÿผ ํ•œ๋ฒˆ ๋Œ๋ ค๋ณด์ž.



union ๋ฌธ (union distinct)

union์€ ์–‘์ชฝ์œผ๋กœ select๋ฌธ์„ ๋ฐ›์•„, ๊ทธ ์–‘์ชฝ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํ•ฉํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋ฌธ๋ฒ•์„ ๊ฐ„๋‹จํžˆ ํ‘œํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. A์™€ B๊ฐ€ select ํ‘œํ˜„์‹์ด๋ผ๊ณ  ๋ณด๋ฉด ๋ค๋‹ค.
A union B
A union distinct B
์œ„์˜ ๋‘ ํ‘œํ˜„์‹์€ ๊ฐ™์€ ์˜๋ฏธ๋‹ค,
union์€ ๋”ฐ๋กœ ๋ญ˜ ๋ถ™์ด์ง€ ์•Š์œผ๋ฉด distinct๊ฐ€ ์ž๋™์œผ๋กœ ๋ถ™๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ผ๋‹จ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž.
๋งŒ์•ฝ ์ด๋Ÿฌํ•œ ์ฟผ๋ฆฌ์™€

์ €๋Ÿฌํ•œ ์ฟผ๋ฆฌ๋ฅผ

๊ฒฐํ•ฉํ•˜๋ฉด

์ด๋ ‡๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
order by id๋Š” ๊ทธ๋ƒฅ ๋ณด๊ธฐ ์ข‹๊ฒŒ ์ •๋ ฌํ•˜๋ ค๊ณ  ๋„ฃ์—ˆ๋‹ค.

distinct๋ฅผ ๋„ฃ์–ด๋„ ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™๋‹ค.

๊ทธ๋ฆฌ๊ณ  distinct๋Š” ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.
๊ทธ๋ž˜์„œ ๋งŒ์•ฝ ์•„๋ž˜์™€ ๊ฐ™์ด, ์ค‘๋ณต๋œ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์™€๋„, ๋‹จ ํ•˜๋‚˜์”ฉ๋งŒ ๋ฝ‘ํžˆ๊ฒŒ ๋งŒ๋“ ๋‹ค.

๋˜‘๊ฐ™์€ ์ „์ฒด๋ชฉ๋ก์„ ํ•ฉํ–ˆ์Œ์—๋„ ๋‘๋ฒˆ์”ฉ ๋‚˜์˜ค์ง€ ์•Š์Œ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.



union all๋ฌธ

์ด๊ฑด union distinct์™€ ๋‹ค๋ฅด๊ฒŒ ์ค‘๋ณต์ด ์žˆ์–ด๋„ ๋ฐฐ์ œํ•˜์ง€ ์•Š๊ณ  ๋ฌด์‹ํ•˜๊ฒŒ ํ•ฉ์ณ๋ฒ„๋ฆฐ๋‹ค.
๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ค‘๋ณต๋œ ๋ชฉ๋ก์ด ํฌํ•จ๋œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค.



์ฃผ์˜์ 

์ฝ”๋“œ๋งŒ ๋ณด๋ฉด ๋˜๊ฒŒ ํŽธํ•ด๋ณด์ด์ง€๋งŒ union์€ ์‚ฌ์šฉ์ด ๊ถŒ์žฅ๋˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋‹ค.
์˜คํžˆ๋ ค ์ตœ๋Œ€ํ•œ ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์ผ๋‹จ ์ด๊ฑด, ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์— ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š๋‹ค.
ํ…Œ์ด๋ธ”์— ํ•œ๋ฒˆ ์ ‘๊ทผํ•ด๋„ ๋˜๋Š” ๊ฑธ ๋‘๋ฒˆ ์ ‘๊ทผํ•ด์„œ ํ•ฉ์น˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ด๊ฑธ ์‚ฌ์šฉํ•  ๋ฐ”์—” select๋ฌธ์— where์ ˆ์„ ์ž˜ ๋‹ฌ์•„๋†“๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์ ์œผ๋กœ ํ›จ์”ฌ ๋‚ซ๋‹ค.
์ž์„ธํ•œ ๊ฒƒ์€ ์•„๋ž˜ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค.

http://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8208581587