2026
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

/ 2026.08.13

drizzle with vs. .leftJoin()

  1. with (relational queries)

    • 방식 : 스키마에 정의된 relations를 기반으로 동작한다.
    • 결과 구조 : 부모-자식 관계가 중첩된 객체 형태로 반환된다.
    const result = await db.query.users.findMany({	with: { posts: true },});// 결과: [{ id: 1, name: 'Kim', posts: [{ id: 10, title: 'Hello' }] }]
  2. .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' } }]

drizzle에서 relations 연산자를 사용해 테이블 간의 일대일 관계를 정의할 수 있다.
공식 문서 참고: https://drizzle-orm.burt.pe.kr/docs/relations

조인 조건

  • fields: 내 테이블에서 열쇠로 컬럼.
  • references: 상대 테이블에서 그 열쇠로 찾을 컬럼