๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋งฅ๋ฝ์์ ์ธ๋ถ ์กฐ์ธ์ ๊ด๋ จ ์ด์ ๊ธฐ๋ฐ์ผ๋ก ๋ ๊ฐ ์ด์์ ํ ์ด๋ธ์ ์๋ ๋ ์ฝ๋๋ฅผ ๊ฒฐํฉํ๋ ๋์์ ํ๋ ๋๋ ๋ ํ ์ด๋ธ์ ์ผ์นํ์ง ์๋ ๋ ์ฝ๋๋ ํฌํจํ๋ ๊ธฐ๋ณธ ์์ ์ ๋๋ค. ์ด ์ ํ์ ์กฐ์ธ์ ๋ค๋ฅธ ํ ์ด๋ธ์ ํด๋น ๋ ์ฝ๋๊ฐ ์์ ์ ์๋ ์ ๋ณด๋ฅผ ๋ณด์กดํ๋ฉด์ ์ฌ๋ฌ ์์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ๋ ํฌ๊ด์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ธ๋ถ ์กฐ์ธ์ ์ผ๋ฐ์ ์ผ๋ก ๋ณํฉ๋๋ ํ ์ด๋ธ ๊ฐ์ ๋ถ์ผ์น๋ก ์ธํ ์ ๋ณด ์์ค ์์ด ์ ์ฒด ๋ฐ์ดํฐ์ธํธ๋ฅผ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ณต์กํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฒ๋ฆฌํ๊ณ ์ฌ๋ฌ ํ ์ด๋ธ์ ๊ฑธ์ณ ์ ๋ณด๋ฅผ ํตํฉํด์ผ ํ๋ ๋ฐ์ดํฐ ์ ๋ฌธ๊ฐ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์๊ฒ ํ์์ ์ธ ๋๊ตฌ์ ๋๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ๋ ํ ์ด๋ธ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ฌํ ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ ๊ธฐ๋ณธ ํค์ ์ธ๋ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ ์๋ฉ๋๋ค. ๊ธฐ๋ณธ ํค๋ ํ ์ด๋ธ์ ๊ฐ ํ์ ๋ํ ๊ณ ์ ์๋ณ์์ธ ๋ฐ๋ฉด, ์ธ๋ ํค๋ ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ฅผ ์ฐธ์กฐํ๋ ํ ํ ์ด๋ธ์ ํ๋ ๋๋ ํ๋ ์งํฉ์ ๋๋ค. ์กฐ์ธ์ ์ด๋ฌํ ํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ด๋ จ ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ๊ฒฐํฉํ์ฌ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ธ๋ถ ์กฐ์ธ์๋ ์ผ์ชฝ ์ธ๋ถ ์กฐ์ธ, ์ค๋ฅธ์ชฝ ์ธ๋ถ ์กฐ์ธ, ์์ ์ธ๋ถ ์กฐ์ธ์ ์ธ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค. ์ผ์ชฝ ์ธ๋ถ ์กฐ์ธ์ ์ผ์ชฝ ํ ์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋์ ์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ์ผ์นํ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค. ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ผ๋ฉด ์ค๋ฅธ์ชฝ ํ ์ด๋ธ ์ด์ ๋ํด NULL ๊ฐ์ด ๋ฐํ๋ฉ๋๋ค. ์ค๋ฅธ์ชฝ ์ธ๋ถ ์กฐ์ธ๋ ๋น์ทํ๊ฒ ์๋ํ์ฌ ์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋์ ์ผ์ชฝ ํ ์ด๋ธ์ ์ผ์นํ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๋ฉฐ, ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ผ๋ฉด ์ผ์ชฝ ํ ์ด๋ธ ์ด์ NULL ๊ฐ์ ๋ฐํํฉ๋๋ค. ์์ ์ธ๋ถ ์กฐ์ธ์ ์ผ์นํ๋ ํญ๋ชฉ์ด ์๋ ์ด์ NULL ๊ฐ์ด ํฌํจ๋ ๋ ํ ์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค.
๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ธฐ ์ํ ๋ค์ฉ๋ no-code ํ๋ซํผ์ธ AppMaster ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋ณต์กํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํจ์จ์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ธ๋ถ ์กฐ์ธ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๊ณ ์ฌ์ฉํ๋ฉด ์ด ํ๋ซํผ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ฐ ๋ฌธ์ ํด๊ฒฐ ํ๋ก์ธ์ค์ ๋ง๋ํ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค. AppMaster ๋ค์ํ ํ ์ด๋ธ, ๊ด๊ณ ๋ฐ ์กฐ์ธ์ ํฌํจํ๋ ๋ณต์กํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ง์ํ๋ฏ๋ก ์ฌ์ฉ์๋ ๊ฐ๋ ฅํ๊ณ ๊ธฐ๋ฅ์ด ํ๋ถํ ์ํํธ์จ์ด ์๋ฃจ์ ์ ์ํํ๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
์ธ๋ถ ์กฐ์ธ ๊ฐ๋ ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด '์ฃผ๋ฌธ'๊ณผ '๊ณ ๊ฐ'์ด๋ผ๋ ๋ ๊ฐ์ ํ ์ด๋ธ์ด ์๋ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํด ๋ณด๊ฒ ์ต๋๋ค. ๊ฐ ๊ณ ๊ฐ์ ์ฌ๋ฌ ์ฃผ๋ฌธ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ ๊ฐ ์ฃผ๋ฌธ์ ํน์ ๊ณ ๊ฐ๊ณผ ์ฐ๊ฒฐ๋ฉ๋๋ค. 'customers' ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ 'customer_id'์ธ ๋ฐ๋ฉด, 'orders' ํ ์ด๋ธ์ ์ธ๋ ํค๋ 'customer_id'์ ๋๋ค. ์ด์ ์ฃผ๋ฌธ์ ํ์ง ์์ ๊ณ ๊ฐ์ ํฌํจํ์ฌ ๊ฐ ์ฃผ๋ฌธ ์ธ๋ถ ์ ๋ณด์ ํจ๊ป ๋ชจ๋ ๊ณ ๊ฐ์ ๋ชฉ๋ก์ ๊ฒ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ผ์ชฝ ์ธ๋ถ ์กฐ์ธ์ ์ฌ์ฉํ์ฌ 'customer_id' ํ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก 'customers' ๋ฐ 'orders' ํ ์ด๋ธ์ ๊ฒฐํฉํ ์ ์์ผ๋ฉฐ, ์ผ์นํ๋ ๋ ์ฝ๋๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๊ณ ๊ฐ ์ ๋ณด๊ฐ ๊ฒฐ๊ณผ์ ํฌํจ๋๋๋ก ํ ์ ์์ต๋๋ค. '์ฃผ๋ฌธ' ํ ์ด๋ธ์ ๋๋ค.
์ด ์์ SQL ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
SELECT ๊ณ ๊ฐ.๊ณ ๊ฐ_ID, ๊ณ ๊ฐ.์ด๋ฆ, ์ฃผ๋ฌธ.์ฃผ๋ฌธ_ID, ์ฃผ๋ฌธ.์ฃผ๋ฌธ_๋ ์ง
๊ณ ๊ฐ์ผ๋ก๋ถํฐ
LEFT OUTER JOIN ์ฃผ๋ฌธ ON customer.customer_id =orders.customer_id;
AppMaster ์ no-code ํ๋ซํผ์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๋ ์ง๊ด์ ์ธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์กฐ์ธ ์์ ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์คํํ ์ ์์ต๋๋ค. ๋ํ AppMaster ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ํญ์ ์ฒ์๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ์ฌ ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ ๋๋ ๋น์ฆ๋์ค ๋ก์ง์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฆ์ ๋ฐ์๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
์์ฝํ์๋ฉด, ์ธ๋ถ ์กฐ์ธ์ ๊ฐ๋ฐ์๊ฐ ์ผ์นํ์ง ์๋ ๋ ์ฝ๋๋ฅผ ๋ณด์กดํ๋ฉด์ ์ฌ๋ฌ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์ํ ์ธก๋ฉด์ ๋๋ค. ๊ด๋ จ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๊ฒฐํฉํ ๋ ์ ๋ณด๊ฐ ์์ค๋๊ฑฐ๋ ๊ฐ๊ณผ๋์ง ์๋๋ก ๋ณด์ฅํ์ฌ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์์ ์ฑ์ ํฌ๊ฒ ๊ธฐ์ฌํฉ๋๋ค. ์ธ๋ถ ์กฐ์ธ๊ณผ ํด๋น ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง์คํฐํ๋ฉด ๋ณต์กํ ๋ฐ์ดํฐ ๋ชจ๋ธ ์์ ๋ฅ๋ ฅ์ด ํฅ์๋๊ณ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค๊ฐ ํฅ์๋ฉ๋๋ค. AppMaster ์ฌ์ฉํ๋ฉด ์ธ๋ถ ์กฐ์ธ์ ํ์ฉํ์ฌ ๋ค์ํ ๋น์ฆ๋์ค ๋๋ฉ์ธ ๋ฐ ์ฌ์ฉ ์ฌ๋ก์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ์ ๊ตํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.