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;
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 |