Skip to content

Instantly share code, notes, and snippets.

@CT-1326
Last active July 14, 2024 14:36
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.
잊지말자 SQL

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

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

TypeORM

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