λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Database/DB λ¬Έμ œν’€μ΄

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ³΄ν˜Έμ†Œμ—μ„œ μ€‘μ„±ν™”ν•œ 동물 (MySQL)

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ³΄ν˜Έμ†Œμ—μ„œ μ€‘μ„±ν™”ν•œ 동물 MySQL

문제 : ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€_λ³΄ν˜Έμ†Œμ—μ„œ μ€‘μ„±ν™”ν•œ 동물

문제 μ„€λͺ…

LEFT JOIN

μž…μ–‘ μ „μ˜ ν…Œμ΄λΈ”μΈ ANIMAL_INS와 μž…μ–‘ ν›„μ˜ ν…Œμ΄λΈ”μΈ ANIMAL_OUTSκ°€ λͺ¨λ‘ ν•„μš”ν•˜λ―€λ‘œ, LEFT JOIN이 ν•„μš”ν•œ λ¬Έμ œμž…λ‹ˆλ‹€.

λ¬Έμ œμ—μ„œ μš”κ΅¬ν•˜λŠ” 것은 μž…μ–‘ μ „μ—λŠ” 쀑성화가 λ˜μ–΄μžˆμ§€ μ•Šμ§€λ§Œ, μž…μ–‘ 후에 쀑성화가 된 동물을 좜λ ₯ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

μ—¬κΈ°μ„œ 쀑성화가 λ˜μ–΄ μžˆμ§€ μ•Šμ€ 동물은 Intact~둜 ν‘œν˜„λ©λ‹ˆλ‹€.

쀑성화가 λ˜μ–΄μžˆλŠ” 동물은 Spayed~ λ‚˜ Neutered~둜 ν‘œν˜„λ©λ‹ˆλ‹€.


Solution

μš°μ„  selectμ—μ„œ animal_outs의 ID, Type, Name을 μš”μ²­ν•©λ‹ˆλ‹€.

κ΅¬ν•˜λŠ” 아이디, νƒ€μž…, 이름은 animal_outs ν…Œμ΄λΈ”μ΄λ―€λ‘œ from 뒀에 λ°”λ‘œ animal_outsλ₯Ό 써주고 left join ν•©λ‹ˆλ‹€.

μ΄λ•Œ join ν•˜λŠ” 쑰건은 animal_outs와 animal_ins의 idκ°€ 같은 경우둜 ν•΄μ€λ‹ˆλ‹€.

그러면 μ„œλ‘œμ˜ 아이디가 λ™μΌν•œ 동물듀이 좜λ ₯되게 될 텐데, μ—¬κΈ°μ„œ where 쑰건을 μ΄μš©ν•˜μ—¬ μž…μ–‘ μ „μ—” 쀑성화가 μ•ˆ λ˜μ–΄μžˆλŠ” 동물을, μž…μ–‘ ν›„μ—” 쀑성화가 λ˜μ–΄μžˆλŠ” λ™λ¬Όλ‘œ 쑰건을 κ±Έμ–΄μ€λ‹ˆλ‹€.

Description

  • like 'intact%'의 ν‘œν˜„μœΌλ‘œ 쀑성화 μ—¬λΆ€λ₯Ό λ¬Έμžμ—΄μ— λŒ€ν•œ 쑰건으둜 νŒλ‹¨ν•˜κ²Œ ν–ˆμŠ΅λ‹ˆλ‹€.

select animal_outs.ANIMAL_ID, animal_outs.ANIMAL_TYPE, animal_outs.NAME from animal_outs 
left join animal_ins on animal_outs.animal_id = animal_ins.animal_id 
where animal_ins.sex_upon_intake like 'intact%' and 
(animal_outs.sex_upon_outcome like 'Neutered%' or animal_outs.sex_upon_outcome like 'Spayed%')