1. ๋ฌธ์ ์ค๋ช
2. ์ ๊ทผ๋ฐฉ์ & ์ ๋ต์ฝ๋
SELF JOIN์ผ๋ก ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋์ผํ ํ ์ด๋ธ ๋ด์์ ์กฐ์ธํด์ ํ์ด์ฃผ์.
ํ๋์ ํ ์ด๋ธ์ ALIAS๋ฅผ ์ค์ ๋ง์น ๋ ๊ฐ์ ํ ์ด๋ธ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ ๋ฒ ์ฐธ์กฐํ๋ ๊ฒ์ด๋ค.
๋ด๊ฐ ์๊ณ ์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ SELF JOIN ์์๋ ์ง์๋ณ ๋งค๋์ ๋ฅผ ๋ํ๋ธ 1๊ฐ์ ํ ์ด๋ธ์ ์๊ธฐ์์ ๊ณผ ์กฐ์ธํ๋ ๊ฒ์ด๋ค. ๋ ๊ณ์ธต์ฟผ๋ฆฌ์์๋ SELF JOIN์ด ๋ง์ด ์ฐ์ธ๋ค.
์ด ๋ฌธ์ ์์๋ ํ๋์ ํ
์ด๋ธ์ ๋ถ๋ชจ์ ์์ด๋์ ์์์ ์์ด๋, ๊ฐ์ฒด์ ํ์ง(GENOTYPE)์ด ๋ชจ๋ ๋ค์ด ์๋ค. ๋ถ๋ชจ์ ํ
์ด๋ธ์ P๋ก, ์์์ ํ
์ด๋ธ์ ๊ทธ๋ฅ A๋ผ๊ณ ๋ณ์นญ์ ์ค ๋ค ์์ํ
์ด๋ธ์ PARENT_ID์ปฌ๋ผ์ ๋ถ๋ชจ ํ
์ด๋ธ์ ID ๊ฐ์ผ๋ก ์กฐ์ธ ํ๋ค. ๊ทธ ํ WHERE ์ ์ `A.GENOTYPE & P.GENOTYPE = P.GENOTYPE` ๋ผ๋ ์กฐ๊ฑด์ ์ฃผ๋ฉด ๋๋ค. ๋ถ๋ชจ์ ํ์ง์ ๋ชจ๋ ๋ณด์ ํ ๋์ฅ๊ท ์ ์ฐพ์ผ๋ผ๊ณ ํ๊ธฐ ๋๋ฌธ์ ์์์ ํ์ง๊ณผ ๋ถ๋ชจ์ ํ์ง์ ๋นํธ์ฐ์ฐํด์ ๋ถ๋ชจ์ ํ์ง๊ฐ๊ณผ ๋งค์นญ๋๋์ง ๋น๊ต ํด ์ฃผ๋ ๊ฒ์ด๋ค.
SELECT A.ID, A.GENOTYPE, P.GENOTYPE AS PARENT_GENOTYPE
FROM ECOLI_DATA A JOIN ECOLI_DATA P
ON A.PARENT_ID = P.ID
WHERE A.GENOTYPE & P.GENOTYPE = P.GENOTYPE
ORDER BY A.ID; -- ์์ ID๋ก ์ ๋ ฌ