[SQL] join: ๊ต์ฐจ ์กฐ์ธ

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

cross join, ์ดํ•˜ ๊ต์ฐจ ์กฐ์ธ์€ ํ…Œ์ด๋ธ”์— ์ผ์ข…์˜ ํ–‰๋ ฌ๊ณฑ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ตฌ๋ฌธ์ด๋‹ค.
from์— ๋ถ™๋Š” ํ…Œ์ด๋ธ”์„ A, join์— ๋ถ™๋Š” ํ…Œ์ด๋ธ”์„ B๋ผ๊ณ  ํ•œ๋‹ค๋ฉด,

๊ต์ฐจ ์กฐ์ธ์€ A์˜ ๋ชจ๋“  ํ–‰์„ B์˜ ๋ชจ๋“  ํ–‰์— ํ•œ๋ฒˆ์”ฉ ๋‹ค ๊ณฑํ•œ๋‹ค.
๊ทธ๋ž˜์„œ ๊ต์ฐจ ์กฐ์ธ์˜ ๊ฒฐ๊ณผ ํ–‰์€, A์™€ B์˜ ํ–‰์„ ๊ณฑํ•œ ๊ฐœ์ˆ˜๊ฐ€ ๋œ๋‹ค.

ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์€ postgreSQL์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ…Œ์ด๋ธ” A, B์˜ ๊ตฌ์กฐ์™€ ๋‚ด์šฉ๋ฌผ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

A๋Š” ์ด๋ฆ„, ์ง์—… ์ปฌ๋Ÿผ์„ ๊ฐ€์ง€๋Š” Worker๋ผ๋Š” ํ…Œ์ด๋ธ”์ด๋‹ค.

B๋Š” ์ด๋ฆ„, ์ข…๊ต์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๋Š” ์ข…๊ต์ธ ํ…Œ์ด๋ธ”์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ต์ฐจ ์กฐ์ธ ๊ตฌ๋ฌธ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.
select ... from A** cross join**** B**
๋‹ค๋ฅธ join๋“ค๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋”ฐ๋กœ ์กฐ๊ฑด์‹์€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.

์ € ํ…Œ์ด๋ธ”๋“ค์— ๊ต์ฐจ ์กฐ์ธ์„ ๋‚ ๋ฆฌ๋ฉด, ๊ฐ๊ฐ์˜ ํ–‰์ด 7, 8 ์ด๋ฏ€๋กœ 7x8=56ํ–‰์˜ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜จ๋‹ค.
์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค.

๊ธธ๊ธฐ๋„ ํ•˜๋‹ค.

์“ธ์ผ์ด ๋งŽ์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋‹ค.