Skip to content

Instantly share code, notes, and snippets.

@CT-1326
Last active May 16, 2024 13:49
Show Gist options
  • Save CT-1326/814927c500a70809324b66a208eea14f to your computer and use it in GitHub Desktop.
Save CT-1326/814927c500a70809324b66a208eea14f to your computer and use it in GitHub Desktop.
잊지말자 MySQL

MySQL


Join

img1 daumcdn

employee 테이블

img1 daumcdn

department 테이블

cross join

select * from employee cross join department;

제목 없음

교차 결합으로 A, B 테이블 행 곱하기 사이즈만큼 출력

inner join

select a.*, b.name
from employee a
inner join department b on (b.id = a.dept_id)

img1 daumcdn

조건 결합으로 on 절 다음에 적힌 조건에 맞으면 지정 값을 아니면 null을 출력

left|right outer join

select a.*, b.name
from employee a
left outer join department b on (b.id = a.dept_id)

img1 daumcdn

왼,오른쪽 테이블을 대상으로 반대편 테이블과 결합하는 연산으로 조건이 맞지 않더라도 대상 테이블의 모든 행을 출력

또한, 조건이 맞지 않는 행의 열 값은 null 출력

img1 daumcdn

access_log 테이블

select a.*, b.access_dt
from employee a
left outer join access_log b on (b.emp_id = a.id)

더 추가적인 내용으로 조회용 테이블을 생성해 조인 연산 결과 대상 테이블 전체 행 출력과 조회용 테이블 기록 값이 추가로 출력

self join

select emp.*, manager.name AS 'manager_name'
from employee emp
join employee manager on (manager.id = emp.manager_id)

img1 daumcdn

자기자신을 조인하는 연산으로 같은 테이블을 사용하는만큼 반드시 별명 첨부 필요

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment