๐ SQL & Database (05) - JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN)
ํ์ตํ๊ฒฝ : Windows, MariaDB, DBeaver
- ์์ ํ
์ด๋ธ
[์ฃผ๋ฌธํ ์ด๋ธ]
id | ์ฃผ๋ฌธ๋ฒํธ | ๊ณ ๊ฐ๋ช | ์ํ |
---|---|---|---|
1 | 1 | ํ๊ธธ๋ | ์ปดํจํฐ |
2 | 1 | ํ๊ธธ๋ | ๋ง์ฐ์ค |
3 | 2 | ๊น์ฒ ์ | ํค๋ณด๋ |
4 | 3 | ์ด์ํฌ | ํค๋ณด๋ |
[์ํํ ์ด๋ธ]
id | ์ํ | ๊ฐ๊ฒฉ | ์นดํ ๊ณ ๋ฆฌ |
---|---|---|---|
1 | ์ปดํจํฐ | 1,500,000 | ์ ์์ ํ |
2 | ๋ง์ฐ์ค | 50,000 | ์ฃผ๋ณ๊ธฐ๊ธฐ |
3 | ํค๋ณด๋ | 100,000 | ์ฃผ๋ณ๊ธฐ๊ธฐ |
๋ค๋ฅธ ํ
์ด๋ธ์ ์๋ ์ปฌ๋ผ๋ ๊ฐ์ด ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด?
์ด๋ฐ์์ผ๋ก ๋จ์ํ๊ฒ where ์ ์ ์ฌ์ฉํด์ ์์ฑํด๋ ๋์ง๋ง JOIN์ ์ฌ์ฉํ๋ฉด ์ข ๋ ์ง๊ด์ ์ธ ์ฝ๋๋ฅผ ์งค ์ ์๋ค
INNER JOIN
๋ฐฉ๊ธ ์์๋ก ๋ค์๋ ๋ด์ฉ์ INNER JOIN์ ์ฌ์ฉํด์ ๋๊ฐ์ด ๊ตฌํํ ์ ์๋ค
JOIN๋ฌธ๋ฒ์ ON๊ณผ ํจ๊ป ์ฌ์ฉ๋๋๋ฐ
ON์ SELECT FROM WHERE ์ ์์์ WHERE์ฒ๋ผ ์กฐ๊ฑด์ ๋ฃ๋ ๋ถ๋ถ์ด๋ผ๊ณ ๋ณด๋ฉด ๋จ
์ฌ์ฉ๋ฐฉ๋ฒ
SELECTย ย ์ถ๋ ฅํ ์ปฌ๋ผ๋ค
FROMย ย ํ ์ด๋ธ1ย ย INNER JOINย ย ํ ์ด๋ธ2 ย ย
ONย ย ์กฐ๊ฑด๋ฌธ
๊ทธ๋ฌ๋๊น
์ด๋ฐ ์์ผ๋ก ์ฌ์ฉํ๋ฉด ์๊น SELECT FROM WHERE๋ฌธ์ ์ฌ์ฉํ์ ๋์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋น
๋ง์ฝ 3๊ฐ ์ด์์ ํ
์ด๋ธ์ ํฉ์น๊ณ ์ถ๋ค๋ฉด?
SELECTย ย ์ถ๋ ฅํ ์ปฌ๋ผ๋ค
FROMย ย ํ
์ด๋ธ1ย ย
INNER JOINย ย ํ
์ด๋ธ2 ย ย ONย ย ์กฐ๊ฑด1
INNER JOINย ย ํ
์ด๋ธ3 ย ย ONย ย ์กฐ๊ฑด2
๊ทธ๋ฅ ํ์ค ๋ ์ถ๊ฐํด์ ์ด๋ฐ ์์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋ค
LEFT JOIN
์ํ์์ด๋์ ๋ง์ง ์๋ ์ปฌ๋ผ์ ์ถ๊ฐํ ์์ ํ
์ด๋ธ์ด๋ค
[์ฃผ๋ฌธํ ์ด๋ธ]
id | ์ฃผ๋ฌธ๋ฒํธ | ๊ณ ๊ฐ๋ช | ์ํid |
---|---|---|---|
1 | 100 | ํ๊ธธ๋ | 1 |
2 | 101 | ํ๊ธธ๋ | 2 |
3 | 102 | ๊น์ฒ ์ | 3 |
4 | 103 | ์ด์ํฌ | 3 |
5 | 104 | ๊ฐํธ๋ | 555 |
[์ํํ ์ด๋ธ]
id | ์ํ | ๊ฐ๊ฒฉ | ์นดํ ๊ณ ๋ฆฌ |
---|---|---|---|
1 | ์ปดํจํฐ | 1500000 | ์ ์์ ํ |
2 | ๋ง์ฐ์ค | 50000 | ์ฃผ๋ณ๊ธฐ๊ธฐ |
3 | ํค๋ณด๋ | 100000 | ์ฃผ๋ณ๊ธฐ๊ธฐ |
400 | ์นจ๋ | 1000000 | ๊ฐ๊ตฌ |
์ํํ
์ด๋ธ์ ์์ด๋์ ์ฃผ๋ฌธํ
์ด๋ธ์ ์ํid์ ์ผ์นํ๋ ๊ฒ์ ๊ธฐ์ค์ผ๋ก ๋ ํ
์ด๋ธ์ ํฉ์น๋ ค๋ฉด?
์ด๋ ๊ฒ ํ๋ฉด ๋๊ฒ ์ง์
๊ทธ๋ผ ๊ฒฐ๊ณผ๋
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ๊ณตํต์ ์ด ์๋ ํ๋ค๊น์ง ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด?
LEFT JOIN์ด๋ RIGHT JOIN์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํ๋ค.
์์ ์๋ ์ฟผ๋ฆฌ๋ฌธ์์ INNER ๋์ LEFT๋ก ๋ฐ๊ฟ์ ์ถ๋ ฅํด๋ณด๋ฉด?
๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด LEFT JOIN์
INNER JOIN์ ํด์ ํ
์ด๋ธ์ ํฉ์น๊ธด ํ ๊ฑด๋ฐ,
JOIN๋ฌธ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์ ์๋ ํ
์ด๋ธ์ ํ๋ค์ ๋ชจ๋ ์ถ๋ ฅํด๋ผ. ์ด๊ฑฐ์
RIGHT JOIN
๊ทธ๋ผ RIGHT JOIN์ ๋ญ๊ฒ ๋๊ฐ
JOIN๋ฌธ ๊ธฐ์ค์ผ๋ก ์ค๋ฅธ์ชฝ์ ์๋ ํ
์ด๋ธ์ ํ๋ค์ ๋ชจ๋ ์ถ๋ ฅํ๋ ๊ฑฐ๊ฒ ์ง.
๋๋ฐ~
๊ทธ ๋ฐ ๋ฐ
์ด๊ฑธ ์ด๋์ ์ฐ๋?
ํ
์ด๋ธ์ ํฉ์น ๋ NULL์ด ๋ฐ์ํ๋ ๋ถ๋ถ์ ๋ฏธ๋ฆฌ ์ฐพ๊ณ ์ ํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค๊ณ ํจ
์ด๋ ๊ฒ~