728x90
์ถ์ฒ : ๋ด์ผ๋ฐฐ์์บ ํ
๋ ๊ฐ์ ํ ์ด๋ธ์ ์๋ก ๋ฌถ์ด ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ผ ๋ ์ฌ์ฉ
์ฐ๊ด๊ด๊ณ
* ์ผ๋๋ค : ํ ๋ช ์ ๋ฉค๋ฒ๊ฐ ๊ตฌ๋งค๋ฅผ ์ฌ๋ฌ ๋ฒ ํ ์ ์๋ค.
-> ๋ฉค๋ฒ ํ ์ด๋ธ์ PK๊ฐ ๊ตฌ๋งค ํ ์ด๋ธ์ FK๋ก ๋ค์ด๊ฐ ์๋ค.
๋ด๋ถ ์กฐ์ธ : ๋ ํ ์ด๋ธ์ด ์๋ก ๊ด๋ จ์๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ ~ ๊ต์งํฉ
๋ด๋ถ ์กฐ์ธ์ ํ์
SELECT <์ด ๋ชฉ๋ก>
FROM <์ฒซ ๋ฒ์งธ ํ
์ด๋ธ>
INNER JOIN <๋ ๋ฒ์งธ ํ
์ด๋ธ> -- INNER JOIN์ 'INNER' ์๋ต๊ฐ๋ฅ
ON <์กฐ์ธ๋ ์กฐ๊ฑด>
[WHERE ๊ฒ์ ์กฐ๊ฑด]
ex) ํ ์ด๋ธ ์ด๋ฆ์ ๋ณ์นญ์ ๋ถ์ธ ๋ด๋ถ ์กฐ์ธ
SELECT buy.mem_id, member.mem_name, buy.prod_name, member.addr
FROM buy
JOIN member
ON buy.mem_id = member.mem_id;
-- ํ
์ด๋ธ ์ด๋ฆ์ ๋ณ์นญ์ ๋ถ์ด๋ฉด
SELECT B.mem_id, M.mem_name, B.prod_name, M.addr
FROM buy B
JOIN member M
ON B.mem_id = M.mem_id;
์ธ๋ถ ์กฐ์ธ : ๋ ํ ์ด๋ธ์ ์กฐ์ธํ ๋ ํ์ํ ๋ด์ฉ์ด ํ์ชฝ ํ ์ด๋ธ์๋ง ์์ด๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ์ถํ ์ ์๋ค
์ธ๋ถ ์กฐ์ธ์ ํ์
SELECT <์ด ๋ชฉ๋ก>
FROM <์ฒซ ๋ฒ์งธ ํ
์ด๋ธ(LEFT ํ
์ด๋ธ)>
<LEFT | RIGHT | FULL> OUTER JOIN <๋ ๋ฒ์งธ ํ
์ด๋ธ(RIGHT ํ
์ด๋ธ)>
ON <์กฐ์ผ๋ ์กฐ๊ฑด>
[WHERE ๊ฒ์ ์กฐ๊ฑด];
ex)
SELECT M.mem_id, M.mem_name, B.prod_name, M.addr
FROM member M
LEFT OUTER JOIN buy B
ON M.mem_id = B.mem_id
ORDER BY M.mem_id;
ex) ํ์ ๊ฐ์ ๋ง ํ๊ณ ํ ๋ฒ๋ ๊ตฌ๋งคํ ์ ์ด ์๋ ํ์์ ๋ชฉ๋ก์ ์ถ์ถํ๋ ค๋ฉด
SELECT M.mem_id, M.mem_name, B.prod_name, M.addr
FROM member M
LEFT OUTER JOIN buy B
ON M.mem_id = B.mem_id
WHERE B.prod_name IS NULL
ORDER BY M.mem_id
๊ทธ ๋ฐ์ ์กฐ์ธ
- ์ํธ ์กฐ์ธ
- ์์ฒด ์กฐ์ธ
728x90
'RDB๐๏ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL ๊ฐ๋ฐ์ (SQLD) ์๊ฒฉ์ฆ ๋ฐ๊ธฐ Part 1 ์น์ 0. (0) | 2023.06.03 |
---|---|
SQL : ์ธ๋ฑ์ค (0) | 2023.01.25 |
SQL : ๋ฐ์ดํฐ ๋ณ๊ฒฝ (0) | 2023.01.10 |
SQL : ๋ฐ์ดํฐ ์กฐํ (0) | 2023.01.09 |
๊ฒ์ํ์ ๋๊ธ์ ํฌํจํ๊ณ ์๋ ๊ฒ์๋ฌผ์ ๋๊ธ ์ญ์ ์์ด ๊ฒ์๋ฌผ๋ง ์ญ์ ํ๋ ๊ฒฝ์ฐ, ์์ธ Referential integrity constraint violation : 2) SQL (0) | 2023.01.02 |