跳到主要内容

build_rule_group_join()

function build_rule_group_join(
adapter,
entityMetadata,
ruleGroup,
orderBy?,
options?
): object;

Defined in: packages/rxdb-adapter-sqlite-core/src/query/join_sql.ts:516

计算查询需要的 JOIN 字符串

Parameters​

ParameterTypeDescription
adapterRxDBAdapterSqliteBase适配器
entityMetadataEntityMetadata要查询的 Entity 的 metadata
ruleGroupRuleGroup查询条件
orderBy?OrderBy<string>[]排序条件,其中的点号字段同样参与 JOIN 规划
options?RuleGroupJoinOptions子查询 / 递归成员场景下的规划上下文改写

Returns​

object

JOIN SQL、字段别名映射,以及外键归一化后的 orderBy

fieldAliasMap​

fieldAliasMap: Map<string, string> = context.fieldAliasMap;

joinSQL​

joinSQL: string;

orderBy​

orderBy: object[] | undefined = normalizedOrderBy;

Remarks​

where 与 orderBy 必须共享同一个 JoinContext(SQLC-025):两侧引用同一关系时才会复用同一个表别名, 否则同一张表被 LEFT JOIN 两次,行数翻倍。orderBy 传入后由返回的 orderBy 字段取回归一化结果 —— _process_dotted_field 会就地把外键路径改写成本表列名(owner.id → ownerId), 这里先浅拷贝再遍历,避免污染调用方传入的 orderBy 数组。