DBMS/MySQL

정규화된 테이블 간의 연결 (feat. join)

Bambi97 2024. 10. 10. 16:41
join
select 필드1, ... from 테이블1 [inner, left, right] join 테이블2 on 테이블1.필드 = 테이블2.필드

 

예제에 사용할 테이블

 

1. INNER JOIN

- 조인하는 테이블의 on 절의 조건이 일치하는 결과만 출력
- 두 테이블간의 데이터 교집합
- join, cross join 모두 같은 의미로 사용됨

# 공통 PK로 연결된 컬럼만 보여주는 inner join
select member.userid, name, gender, mbti from member join profile on member.userid = profile.userid;

위 inner join 결과

 

2. OUTER JOIN

- 두 테이블이 조인될 때 왼쪽(기본키 테이블) 또는 오른쪽(외래키 테이블) 기준으로, 기준 테이블의 데이터를 모두 출력

# left outer join
# 왼쪽 테이블(member) PK를 기준으로 출력 (오른쪽 테이블(profile)에 연결된 키가 없으면 해당 값은 null로 출력)
select member.userid, member.name, member.gender, profile.mbti from member left join profile on member.userid = profile.userid;

# right outer join
# 오른쪽 테이블(profile) PK를 기준으로 출력 (왼쪽 테이블(member)에 연결된 키가 없으면 해당 값은 null로 출력)
select member.userid, member.name, member.gender, profile.mbti from member right join profile on member.userid = profile.userid;

 

* 별칭(as) 사용 예시

# as 사용 예시
select m.userid, m.name, m.gender, p.mbti from member as m left join profile as p on m.userid = p.userid;

'DBMS > MySQL' 카테고리의 다른 글

UNION과 VIEW  (0) 2024.10.10
MySQL 문자열 다루기  (0) 2024.10.10
테이블 설계 (feat. 정규화)  (0) 2024.10.10
테이블에 데이터 CRUD (DML문)  (2) 2024.10.08
데이터베이스 및 테이블 문법 (DDL문)  (1) 2024.10.08