2026
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
/ 2026.08.13
drizzle with vs. .leftJoin()
-
with(relational queries)- 방식 : 스키마에 정의된
relations를 기반으로 동작한다. - 결과 구조 : 부모-자식 관계가 중첩된 객체 형태로 반환된다.
const result = await db.query.users.findMany({ with: { posts: true },});// 결과: [{ id: 1, name: 'Kim', posts: [{ id: 10, title: 'Hello' }] }] - 방식 : 스키마에 정의된
-
.leftJoin()- 방식 : SQL 문법과 유사하게
.select().from().leftJoin()체이닝 형태로 작성한다. - 결과 구조 : flat 행 단위 배열로 반환되며, 직접 데이터를 매핑해야 한다.
const result = await db.select(). .from(users) .leftJoin(posts, eq(users.id, posts.userId));// 결과: [{ user: { id: 1, name: 'Kim' }, post: { id: 10, title: 'Hello' } }] - 방식 : SQL 문법과 유사하게
drizzle에서 relations 연산자를 사용해 테이블 간의 일대일 관계를 정의할 수 있다.
공식 문서 참고: https://drizzle-orm.burt.pe.kr/docs/relations
조인 조건
- fields: 내 테이블에서 열쇠로 쓸 컬럼.
- references: 상대 테이블에서 그 열쇠로 찾을 컬럼