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
| Parameter | Type | Description |
|---|---|---|
adapter | RxDBAdapterSqliteBase | 适配器 |
entityMetadata | EntityMetadata | 要查询的 Entity 的 metadata |
ruleGroup | RuleGroup | 查询条件 |
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 数组。