JOIN
두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어내는 것 (사용자가 필요한 집합 결과 도출)
→범위산정
INNER JOIN | |
OUTTER JOIN | |
SELF JOIN | 거의 사용 안하지만 계층 구도 만들 때 사용 |
CROSS JOIN | |
NATURAL JOIN | 같은 컬럼이어야 함. (=inner join과 같이 표현됨) |
inner join
SELECT
*
FROM
tb_member_level AS l
INNER join
tb_member AS m
on
l.level_num = m.m_level
WHERE
l.level_num > 1;
SELECT
*
FROM
tb_member_level AS l
LEFT JOIN
tb_member AS m
on
l.level_num = m.m_level;
null 비교는 is 로!
SELECT
*
FROM
tb_member_level AS l
LEFT JOIN
tb_member AS m
on
l.level_num = m.m_level
WHERE
m_id IS NULL;
SELECT
*
FROM
tb_member_level AS l
LEFT JOIN
tb_member AS m
on
l.level_num = m.m_level
WHERE
m_id IS not null;
>> inner join과 결과값이 같다.
self join
SELECT
m1.m_id AS member1
,m2.m_id AS memeber2
,m1.m_addr AS address
FROM
tb_member AS m1
join
tb_member AS m2
on
m1.m_id <> m2.m_id
and
m1.m_addr = m2.m_addr
ORDER BY m1.m_id;
cross join
SELECT
*
FROM
tb_member_level AS l
CROSS JOIN
tb_member AS m
ORDER BY l.level_num,m.m_id;
A행xB행 (곱집합)
'Database' 카테고리의 다른 글
[Database] 정규화(Normalization) (0) | 2020.04.01 |
---|---|
[Database] 데이터베이스 설계 (0) | 2020.03.25 |
[Database] SQL 활용 ② (0) | 2020.03.18 |
[Database] SQL 활용 ① (3) | 2020.03.18 |