본문으로 건너뛰기

타입 별칭: ApplyJoinOptionalityToMergedSchema<TExistingSchema, TNewSchema, TJoinType, TFromSourceNames>

type ApplyJoinOptionalityToMergedSchema<TExistingSchema, TNewSchema, TJoinType, TFromSourceNames> = { [K in keyof TExistingSchema]: K extends TFromSourceNames ? TJoinType extends "right" | "full" ? TExistingSchema[K] | undefined : TExistingSchema[K] : TExistingSchema[K] } & { [K in keyof TNewSchema]: TJoinType extends "left" | "full" ? TNewSchema[K] | undefined : TNewSchema[K] };

정의 위치: packages/db/src/query/builder/types.ts:1001

ApplyJoinOptionalityToMergedSchema - 스키마를 병합할 때 선택 사항 규칙을 적용합니다

이 타입은 다음 SQL 조인 선택 사항 의미 체계를 구현합니다:

기존 테이블의 경우:

  • RIGHT JOIN 또는 FULL JOIN: 기본 테이블(fromSourceName)이 선택 사항이 됩니다.
  • 다른 조인 유형: 기존 테이블은 현재 선택 사항 설정을 유지합니다.
  • 이전에 조인된 테이블: 이미 적용된 선택 사항 설정을 유지합니다.

새 테이블의 경우:

  • LEFT JOIN 또는 FULL JOIN: 새 테이블이 선택 사항이 됩니다.
  • INNER JOIN 또는 RIGHT JOIN: 새 테이블이 필수로 유지됩니다.

예시:

FROM users LEFT JOIN orders  -- orders becomes optional
FROM users RIGHT JOIN orders -- users becomes optional
FROM users FULL JOIN orders -- both become optional
FROM users INNER JOIN orders -- both remain required

교집합(&)은 모든 테이블 참조를 유지하면서 기존 스키마와 새 스키마를 단일 타입으로 병합하도록 합니다.

타입 매개변수

TExistingSchema

TExistingSchema extends ContextSchema

TNewSchema

TNewSchema extends ContextSchema

TJoinType

TJoinType extends "inner" | "left" | "right" | "full" | "outer" | "cross"

TFromSourceNames

TFromSourceNames extends string