header-img
Info :
๋ฐ€๋„
denseยน
์žฅ๋ž˜ํฌ๋ง : ๋‹จ์œ„ ๋ถ€ํ”ผ ๋‹น ์งˆ๋Ÿ‰์ด ๋ณด๋‹ค ๋นฝ๋นฝํ•œ ์‚ฌ๋žŒ ๋˜๊ธฐ

 

 

 

 

 

์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Join์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ๋‹ค. Join์€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์—์„œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ์ข…ํ•ฉํ•ด ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ‚ค์›Œ๋“œ๋‹ค. ์ •๋ณด๋ฅผ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๋ถ„๋ฆฌํ•ด ๋ณด๊ด€ํ•˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)์™€ ๋‘ ํ…Œ์ด๋ธ” ์ด์ƒ์˜ ์ ‘์  ํ˜น์€ ์ฐจ์ด์ ์—์„œ ์œ ์˜๋ฏธํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋„์ถœํ•ด๋‚ด๋Š” ์ง‘ํ•ฉ์€ ๋—„๋ ˆ์•ผ ๋—„ ์ˆ˜ ์—†๋Š” ์‚ฌ์ด๋ผ ํ•˜๊ฒ ๋‹ค.

 

 

Join์˜ ์ข…๋ฅ˜. ์ถœ์ฒ˜// https://lyk00331.tistory.com/107

 

 

Join์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‘ ํ…Œ์ด๋ธ”์„ ๊ฐ–๋‹ค ๋†“๊ณ  ๊ธฐ์ค€์ ๊ณผ ์ถœ๋ ฅ ๋ฒ”์œ„๋ฅผ ์–ด๋–ป๊ฒŒ ๋‘๋ƒ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•˜๊ฒŒ ์„ธ๋ถ„ํ™”๋˜์–ด ์žˆ๊ณ  ์ด๋Š” ์ง‘ํ•ฉ์˜ ๊ฐœ๋…๊ณผ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๋‹ค. ๋‹ค๋งŒ ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ ๋“ฑ ์ผ๋ถ€ ์ง‘ํ•ฉ ๊ตฌํ˜„ ๊ธฐ๋Šฅ์€ mySQL์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, exists ๊ตฌ๋ฌธ์œผ๋กœ ์ง์ ‘ ๋งŒ๋“ค์–ด ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฌธ๋ฒ•๋“ค์„ ์•„๋ž˜ ์ˆœ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ๋А์Šจํ•˜๊ฒŒ ํ†บ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

 

 

1) Inner Join

2) (Left/ Right) Outer Join

3) intersect/ minus

 

 

์ถ”๊ฐ€๋กœ, ๋ฐ์ดํ„ฐ๋Š” ๊ธˆ์ผ์ž ๊ธฐ์ค€ 29cm์˜ ์‹ค์‹œ๊ฐ„ ๋ฒ ์ŠคํŠธ๋ฅผ ํฌ๋กค๋งํ•œ ๋’ค, ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ตœ๋Œ€ํ•œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์œผ๋กœ ๊ฐ€๊ณตํ•ด ์˜ฌ๋ ธ๋‹ค. (ํ˜น์‹œ ๊ถ๊ธˆํ•˜์‹  ๋ถ„์ด ์žˆ์œผ์‹ค๊นŒ ํ•ด์„œ ๋ง๋ถ™์ด๋ฉด ํฌ๋กค๋ง์—๋Š” listly, ํฌ๋กค๋ง ํŒŒ์ผ์˜ sql์‹ ๊ฐ€๊ณต์—๋Š” tableconvert.com๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.) ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

 

select * from lrank;  *์ƒํ’ˆ์ฝ”๋“œ, ์ œํ’ˆ์˜ ์ •์ƒ๊ฐ€, ๋งค์ถœ ์ˆœ์œ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋‹ค.
select * from linfo;  *์นดํ…Œ๊ณ ๋ฆฌ, ๋ธŒ๋žœ๋“œ, ์ƒํ’ˆ๋ช…, ์ข‹์•„์š” ์ˆ˜, ์ƒํ’ˆํ‰ ์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋‹ค.

(์ƒํ’ˆ์ฝ”๋“œ์™€ ์ˆœ์œ„๋Š” ๋ถ„์„์„ ์œ„ํ•ด ๋‚ด๊ฐ€ ์ž„์˜๋กœ ๋ถ€์—ฌํ•œ ๊ฐ’์ด๋‹ค.)

 

 

lrank ํ…Œ์ด๋ธ”์˜ ํ˜•ํƒœ.
linfo ํ…Œ์ด๋ธ”์˜ ํ˜•ํƒœ.

 

 

 

 

 

1) Inner Join

 

Inner Join์€ ๊ธฐ์ค€ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๊ต์ง‘ํ•ฉ ๊ฐœ๋…์ด๋‹ค. (์Œ๋ฐฉ ๊ต์ง‘ํ•ฉ์€ ์•„๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฐœ๋… ๊ด€๋ จํ•ด์„œ๋Š” 3) intersect ํŒŒํŠธ๋ฅผ ๋ณด๋ฉด ๋œ๋‹ค.) on์— ์ง€์ •ํ•ด ์ค€ ์ค‘์‹ฌ์ด ๋˜๋Š” ์ปฌ๋Ÿผ(Primary Key, PK: ๊ธฐ๋ณธํ‚ค) ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์ณ์„œ ๋ณด์—ฌ ์ค€๋‹ค. ๊ฐ€์žฅ ์ตœ์†Œ๊ฐ’์œผ๋กœ Inner Join์„ ์ ์šฉํ•ด ๋ณธ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฟผ๋ฆฌ๊ฐ€ ๋‚˜์˜ค๊ณ  ์ถœ๋ ฅ๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

 

 

select * from linfo li
inner join lrank lr on li.์ƒํ’ˆ์ฝ”๋“œ = lr.์ƒํ’ˆ์ฝ”๋“œ;

 

 

 

 

๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์ด ์ค„์—ˆ๋‹ค. ๋‘ ํ…Œ์ด๋ธ”์˜ ๋ณผ๋ฅจ ์ฐจ์ด ๋•Œ๋ฌธ์ด๋‹ค. linfo๋Š” ์ „์ฒด ๋“ฑ๋ก ์ƒํ’ˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋‹ˆ ๋ณผ๋ฅจ์ด ํฌ์ง€๋งŒ lrank๋Š” ๊ฐœ์ค‘ ๋งค์ถœ ํƒ‘ ์‹์Šค๋งŒ ๋ฝ‘์€ ๊ฒƒ์ด๋‹ˆ ๊ทธ๋ ‡๋‹ค. ์ด๋ ‡๊ฒŒ ๋‘ ํ…Œ์ด๋ธ”์„ Inner Join ๋ฐฉ์‹์œผ๋กœ ์ •์ œํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘์–ด๋„ฃ์ง€ ๋ชป ํ•œ null ๊ฐ’์ด ๋น ์ง„ ์ƒํƒœ๋กœ ๋‚˜์˜จ๋‹ค. ์—ฌ๊ธฐ์„œ ์ •๋ณด๊ฐ’์„ ์ข€ ์ค„์—ฌ ์ค€๋‹ค๋ฉด ์ง๊ด€์ ์ธ ํ‘œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

 

 

select lr.์ˆœ์œ„, lr.์ƒํ’ˆ์ฝ”๋“œ, li.์นดํ…Œ๊ณ ๋ฆฌ, li.๋ธŒ๋žœ๋“œ๋ช…, li.์ƒํ’ˆ๋ช… from linfo li
inner join lrank lr on li.์ƒํ’ˆ์ฝ”๋“œ = lr.์ƒํ’ˆ์ฝ”๋“œ
order by lr.์ˆœ์œ„;

 

 

 

 

์ด๋ ‡๊ฒŒ ์žก์•„ ์ฃผ๋ฉด ๋’ค์ฃฝ๋ฐ•์ฃฝ์ด๋˜ ์ˆœ์œ„๊ฐ€ ์ผ๋ ฌ๋กœ ์ •๋ ฌ๋˜๊ณ  ์ƒํ’ˆ์ฝ”๋“œ, ์นดํ…Œ๊ณ ๋ฆฌ, ๋ธŒ๋žœ๋“œ๋ช…, ์ƒํ’ˆ๋ช…๊นŒ์ง€ ์ง๊ด€์ ์œผ๋กœ ๋ณด์ธ๋‹ค. 

 

 

๋˜ Inner Join์€ (mySQL์—์„œ) ๊ธฐ๋ณธ ์กฐ์ธ์ด๊ธฐ ๋•Œ๋ฌธ์— from์— ์ถ”๊ฐ€ ํ…Œ์ด๋ธ”์„ ๋„ฃ์–ด์ฃผ๊ณ  where ์ ˆ์— ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ํ˜•์‹์œผ๋กœ๋„ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด.

 

 

select lr.์ˆœ์œ„, lr.์ƒํ’ˆ์ฝ”๋“œ, li.๋ธŒ๋žœ๋“œ๋ช…, li.์ƒํ’ˆ๋ช…, li.์ข‹์•„์š”, li.์ƒํ’ˆํ‰ 
from linfo li, lrank lr
where li.์ƒํ’ˆ์ฝ”๋“œ = lr.์ƒํ’ˆ์ฝ”๋“œ
order by lr.์ˆœ์œ„;

 

 

 

์ด๊ฒƒ๋„ ์œ„์™€ ๋™์ผํ•˜๊ฒŒ ์ถœ๋ ฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜ ์ค‘ ํŽธํ•œ ์ชฝ์„ ์ทจ์‚ฌ์„ ํƒํ•ด์„œ ์“ฐ๋ฉด ๋˜๊ฒ ๋‹ค. ๋˜, ํ•ด๋‹น ๋ฐฉ์‹์€ ์กฐ๊ฑด์„ ์—ฌ๋Ÿฌ ๊ฐœ ๊ฑธ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์ค‘ ์ƒํ’ˆํ‰์ด ์ ์€ ๊ฒƒ์€ ์‹ ์ƒํ’ˆ์ธ๋ฐ ๋งค์ถœ์ด ์ž˜ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ˆ ํ”„๋กœ๋ชจ์…˜ ๋“ฑ์œผ๋กœ ๋ฐ€์–ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿด ๋•Œ๋Š”,

 

 

select lr.์ˆœ์œ„, lr.์ƒํ’ˆ์ฝ”๋“œ, li.๋ธŒ๋žœ๋“œ๋ช…, li.์ƒํ’ˆ๋ช…, li.์ข‹์•„์š”, li.์ƒํ’ˆํ‰ 
from linfo li, lrank lr
where li.์ƒํ’ˆ์ฝ”๋“œ = lr.์ƒํ’ˆ์ฝ”๋“œ and li.์ƒํ’ˆํ‰ < 10
order by lr.์ˆœ์œ„;

 

 

 

 

ํ•ด๋‹น ๋ฐฉ์‹์œผ๋กœ ์ƒํ’ˆํ‰์ด ์ ์€ ๊ฑธ ๊ฑธ๋Ÿฌ์„œ ์œ ์˜๋ฏธํ•œ ํ‘œ๋ฅผ ๋งŒ๋“ค์–ด๋„ ์ข‹๊ฒ ๋‹ค.

 

 

 

 

 

 

2) (Left/ Right) Outer Join

 

Outer Join์—๋Š” ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ฐ์ž ๊ธฐ์ค€ ํ…Œ์ด๋ธ”์„ ์–ด๋””๋กœ ์žก๋А๋ƒ์— ๋”ฐ๋ผ ๊ฐ๊ฐ Left/ Right/ Full Outer Join์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์ด ์ค‘ ์„ฑ๋Šฅ ์ƒ ๊ฑฐ์˜ ์“ธ ์ผ์ด ์—†๋Š” Full Outer Join์„ ์ œํ•˜๊ณ  ์—ฌ๊ธฐ์„œ๋Š” Left์™€ Right Join๋งŒ ๋‹ค๋ฃฌ๋‹ค. ๋‘˜์€ ์„ฑ๋Šฅ ์ฐจ์ด ์—†์ด ์™„์ „ํžˆ ๋™์ผํ•ด์„œ, ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋‘˜ ์ด์ƒ์ด ์ฟผ๋ฆฌ ์ž‘์—…ํ•  ๊ฒฝ์šฐ์—๋Š” ์™ผ์ชฝ์ด๋“  ์˜ค๋ฅธ์ชฝ์ด๋“  ํ•œ ์ชฝ์œผ๋กœ ํ†ต์ผํ•˜๊ธธ ๊ถŒํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ฐ€๋…์„ฑ์ด ์‹ฌํžˆ ์•ˆ ์ข‹๋‹ค๊ณ ......

 

 

Outer Join์€ ๊ธฐ์ค€ ํ…Œ์ด๋ธ”์— ๋‚˜๋จธ์ง€ ํ•œ ํ…Œ์ด๋ธ”์ด ํ•ฉ์ณ์ง€๋Š” ํ˜•ํƒœ๋‹ค. ๋งŒ์•ฝ ๊ธฐ์ค€ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’์ด๋ผ๋ฉด ํ•ฉ์ณ์ง€๋Š” ํ…Œ์ด๋ธ”์—๋„ ๊ทธ ๊ฐ’์€ ์ง€์›Œ์ง„๋‹ค. ์˜จ์ „ํ•œ ๊ธฐ์ค€ ํ…Œ์ด๋ธ”์— ๋‚˜๋จธ์ง€ ํ•œ ํ…Œ์ด๋ธ”์˜ ๊ต์ง‘ํ•ฉ๊นŒ์ง€๋งŒ ์‚ด์•„๋‚จ๋Š” ๊ฒƒ์ด๋‹ค.  

 

 

select lr.์ˆœ์œ„, li.์ƒํ’ˆ๋ช…, lr.์ •์ƒ๊ฐ€ from linfo li
right outer join lrank lr on li.์ƒํ’ˆ์ฝ”๋“œ = lr.์ƒํ’ˆ์ฝ”๋“œ;

 

select lr.์ˆœ์œ„, li.์ƒํ’ˆ๋ช…, lr.์ •์ƒ๊ฐ€ from linfo li
left outer join lrank lr on li.์ƒํ’ˆ์ฝ”๋“œ = lr.์ƒํ’ˆ์ฝ”๋“œ;

 

 

์—ฌ๊ธฐ์„œ ์งˆ๋ฌธ, ์ด ๋‘ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๊ฐ’์€ ์ฐจ์ด๊ฐ€ ์žˆ์„๊นŒ ์—†์„๊นŒ? ๋‘ ์ฟผ๋ฆฌ๋Š” right์™€ left๋งŒ ๋นผ๊ณ ๋Š” ๋‹ค ๋™์ผํ•˜๋‹ค.

 

 

right outer join ๊ฒฐ๊ณผ๊ฐ’.

 

left outer join ๊ฒฐ๊ณผ๊ฐ’.

 

 

์ฐจ์ด๊ฐ€ ๋ณ„๋กœ ์—†์„ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ ๋ณด๋‹ค์‹œํ”ผ ์ฐจ์ด๊ฐ€ ํฌ๋‹ค.  ๋‘ Join ๊ฐ„์˜ ๊ธฐ์ค€ ํ…Œ์ด๋ธ” ์„ค์ •์ด ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ํ˜„์ƒ์ด๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฐ” ์žˆ๋“ฏ์ด, linfo๋Š” ์ „์ฒด ์ƒํ’ˆ์ •๋ณด ํ…Œ์ด๋ธ”์ด๋‹ค. lrank๋Š” ๊ทธ ์ค‘ ๋งค์ถœ ์ƒ์œ„๊ถŒ ์ƒํ’ˆ๋งŒ ๋žญํ‚น์— ์˜ฌ๋ฆฌ๋ฉด์„œ ์ง‘๊ณ„๋œ ๋ฐ์ดํ„ฐ์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์ž์ฒด ํฌ๊ธฐ๋Š” ๋ญ๊ฐ€ ๋” ํด๊นŒ? ๋‹น์—ฐํžˆ linfo์ด๋‹ค. linfo๊ฐ€ lrank๋ณด๋‹ค ๋ฐ์ดํ„ฐ์˜ ๋ณผ๋ฅจ์ด ํ›จ์”ฌ ํฌ๋‹ค. ์ƒํ’ˆ๋“ฑ๋ก์ด ๋˜์ง€ ์•Š์€ ์ƒํ’ˆ์ด ๋žญํ‚น์— ์˜ค๋ฅผ ๋ฆฌ ์—†์œผ๋‹ˆ linfo๊ฐ€ lrank๋ฅผ ์•„์˜ˆ ํฌํ•จํ•œ๋‹ค๊ณ  ๋งํ•ด๋„ ์ข‹๊ฒ ๋‹ค.

 

 

Outer Join์€ ๊ธฐ์ค€ ํ…Œ์ด๋ธ”์— ๋‚˜๋จธ์ง€ ํ•œ ํ…Œ์ด๋ธ”์ด ํ•ฉ์ณ์ง€๋Š” ํ˜•ํƒœ๋ผ๊ณ  ํ–ˆ๋‹ค. lrank์— Left Join์„ ํ•œ๋‹ค๋ฉด ๊ธฐ์ค€ ํ…Œ์ด๋ธ”์€ lrank๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋˜์ง€๋งŒ, lrank์— Right Join์„ ํ•œ๋‹ค๋ฉด ๊ธฐ์ค€ ํ…Œ์ด๋ธ”์€ linfo๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— lrank์—์„œ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์€ ๋‚˜๋จธ์ง€ ์ƒํ’ˆ๋“ค๊นŒ์ง€ ๊ฐ™์ด ๋œฌ๋‹ค. Outer Join ์‹œ์—๋Š” ์–ด๋–ค ๊ฑธ ์จ๋„ ์ƒ๊ด€ ์—†์ง€๋งŒ ๊ธฐ์ค€ ํ…Œ์ด๋ธ”์ด ์–ด๋”˜์ง€๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๊ณ  ์ž‘์—…ํ•ด์•ผ ํ•œ๋‹ค.

 

 

์ถ”๊ฐ€๋กœ ๋ง๋ถ™์ด๋ฉด, Outer Join์œผ๋กœ Inner Join์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

select * from lrank lr 
left outer join linfo li on lr.์ƒํ’ˆ์ฝ”๋“œ = li.์ƒํ’ˆ์ฝ”๋“œ 
where li.์ƒํ’ˆ์ฝ”๋“œ is not null;

 

 

 

 

on๊ตฌ ๋’ค์— where์ ˆ์„ ์ฃผ๊ณ  is not null๋กœ null๊ฐ’์„ ์ œ๊ฑฐํ•ด ์ฃผ๋ฉด ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ•˜๋А๋‹ˆ ๊ทธ๋ƒฅ Inner Join์„ ๊ฑฐ๋Š” ๊ฒŒ ๋น ๋ฅด๊ณ  ๊น”๋”ํ•˜๊ฒ ๋‹ค.

 





3) intersect/ minus

 

์œ„์—์„œ Inner์™€ Outer Join์„ ๋‹ค๋ค˜๋‹ค. ์ด์ฏค ๋˜๋ฉด ๊ถ๊ธˆํ•˜๋‹ค. ์•„๋‹ˆ, Join์ด ๊ทธ๊ฒŒ ๋์ด๋ƒ. ์ง„์‹ฌ์ด์•ผ? ์ง‘ํ•ฉ ์„ค๋ช…ํ•˜๋ ค๋ฉด ํ•œ์ฐธ ๋‚จ์•˜์ž–์•„. ๊ทธ๋ž˜. ๋‚˜๋„ ์„ค๋ช…ํ•˜๊ณ  ์‹ถ๋‹ค. ํ•˜์ง€๋งŒ ์•„์‰ฝ๊ฒŒ๋„ mySQL์˜ ๊ฒฝ์šฐ์—๋Š” ๊ต์ง‘ํ•ฉ๊ณผ ์ฐจ์ง‘ํ•ฉ์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๊ฐ€ ๋ณ„๋„๋กœ ๋งŒ๋“ค์–ด ์จ์•ผ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ.

 

 

intersect (๊ต์ง‘ํ•ฉ) ๊ตฌ๋ฌธ
select * from linfo a
where exists (select 1 from lrank b where a.์ƒํ’ˆ์ฝ”๋“œ = b.์ƒํ’ˆ์ฝ”๋“œ);

 

 

์ด๋•Œ select ๋’ค์˜ 1์€ ๋‹จ์ˆœํžˆ exists(์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋งŒ ์ฐพ์œผ๋ฉด ๋˜๋Š” ํ•จ์ˆ˜)๊ฐ€ ์•ž์— ์™”๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅธ ์ถœ๋ ฅ์„ ์œ„ํ•ด ์จ์คฌ๋‹ค. select 1 from ํ˜•์‹์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์น˜๋ฉด ์‹ค์ œ ๊ฐ’์„ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ณ  ๊ฐ’์ด ์žˆ๋ƒ ์—†๋ƒ๋งŒ ๊ฒ€์ฆํ•˜๊ณ  ์žˆ์œผ๋ฉด 1 ์ณ ์ค€๋‹ค. ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๋‹ค. 

 

 

 



minus ๊ตฌ๋ฌธ
select * from linfo a
where not exists (select 1 from lrank b where a.์ƒํ’ˆ์ฝ”๋“œ = b.์ƒํ’ˆ์ฝ”๋“œ);

 

 

๊ต์ง‘ํ•ฉ์˜ ๋ฐ˜๋Œ€๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž. ์ฐจ์ง‘ํ•ฉ์ด๋‹ค. ๋งŽ์ด ๋ฐ”๊ฟ€ ํ•„์š” ์—†์ด exists ์•ž์— not ๋ถ™์—ฌ์„œ ๊ต์ง‘ํ•ฉ์ด ์•„๋‹Œ ๊ฐ’๋งŒ ๋ถˆ๋Ÿฌ์™€ ์ฃผ๋ฉด ๋œ๋‹ค.

 

 

 

 

 

 

์—ฌ๊ธฐ๊นŒ์ง€, ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ๋ถˆ๋Ÿฌ์™€ ํ•œ ๋ˆˆ์— ๋ณด๊ฒŒ ํ•ด ์ฃผ๋Š” Join์— ๋Œ€ํ•ด ์•Œ์•„๋ดค๋‹ค. ์“ฐ๋ฉด์„œ ๋А๋‚€ ๊ฒŒ, ์• ์ดˆ์— ๋ญ˜ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ์ฃฝ์ด ๋˜๋“  ๋ฐฅ์ด ๋˜๋“  ํ•  ๊ฑฐ ๊ฐ™๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณผ ๊ฑด๋ฐ, ์˜ˆ์œ ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์™€์„œ ์ž˜ ์„ค๋ช…ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

 

 

 

 

์ฐธ๊ณ 

Inpa dev ๋‹˜ ๋ธ”๋กœ๊ทธ

BK_Paul ๋‹˜ ๋ธ”๋กœ๊ทธ

๋”๋ณด๊ธฐ
TOOLS/SQL