MySQL - Join
MySQL์์ ์ฌ์ฉํ๋ Join(Inner Join, Equi Join, Outer Join)์ ์์๋ณด์.
Tables
์๋์ ๊ฐ์ ๋ ๊ฐ์ ํ ์ด๋ธ๋ก Join์ ์์๋ณด์.
Inner Join
ํ ์ด๋ธ์ด ๋ ๊ฐ ์์ ๋, ๋ ์งํฉ์ ๊ต์งํฉ ์์ญ์ ์ถ๋ ฅํ๋ ๊ฒ์ด Inner Join์ด๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํด๋ณด์
select * from students s join teachers t on s.tid = t.tid;
students์ teachers ํ ์ด๋ธ์์ tid๊ฐ ๋์ผํ(๊ต์งํฉ ์์ญ) ํํ์ ์ถ๋ ฅํ๋ค.
Equi Join
Equi Join์ ๋ ํ ์ด๋ธ ์ฌ์ด์์ attribute์ ๊ฐ์ด ๊ฐ์ ํํ์ ์ถ๋ ฅํ๋ Join์ด๊ณ , ๊ฐ์ง ์์ ๊ฑธ ์ถ๋ ฅํ๋ ๊ฑด Non-Equi Join์ด๋ค.
select * from students s, teachers t where s.tid = t.tid;
where์ ์กฐ๊ฑด์ผ๋ก equal์ ์ด์ฉํ equi join์ด๋ค.
Non-Equi Join
select * from students s, teachers t where s.tid != t.tid;
non-equi join์ด๋ค.
Outer Join
Outer Join์ Left Join๊ณผ Right Join์ผ๋ก ๋๋ ์ง๋ค.
Left Join์ ๋ ์งํฉ์ ๊ต์งํฉ ์์ญ๊ณผ ์ผ์ชฝ ๊ทธ๋ํ์ ์ผ์นํ์ง ์๋ ์์ญ๋ ์ถ๋ ฅํ๋ค.
Right Join์ ๋ ์งํฉ์ ๊ต์งํฉ ์์ญ๊ณผ ์ค๋ฅธ์ชฝ ๊ทธ๋ํ์ ์ผ์นํ์ง ์๋ ์์ญ๋ ์ถ๋ ฅํ๋ค.
Left Join
select * from students s left join teachers t on s.tid = t.tid;
Right Join
select * from students s right join teachers t on s.tid = t.tid;
right join์์ ์์ ๊ฐ์ด tid ๊ฐ์ด 2์ธ students๋ ์๊ธฐ ๋๋ฌธ์ null
๊ฐ์ผ๋ก ์ถ๋ ฅ๋๋ค.
'Database > DB ์ด๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MySQL - ๋ ์ง ๋ฐ์ดํฐ ์ฌ์ฉ (0) | 2022.03.13 |
---|---|
MySQL User ์์ฑ, ๊ถํ ์ค์ (0) | 2022.03.12 |
Mac OS์์ MySQL ํ๊ธ ์ค์ (UTF-8) (0) | 2022.03.11 |
Database์ ์ฌ๋ฌ ์ข ๋ฅ์ ํค (0) | 2022.03.11 |
MySQL Update & Delete (0) | 2022.03.09 |