Skip to main content

Logicform基础语法

本章节介绍Logicform的基础语法。

Logicform为一个JSON格式。一个标准的Logicform如下所示:

interface LogicformType {
"schema": string;
"preds": PredItemType[];
"query"?: QueryType;
"groupby"?: GroupbyItemType | GroupbyItemType[];
"sort"?: SortType;
"limit"?: number;
"skip"?: number;
}

其中各个部分和SQL有着简单的对应关系

  • schema -> FROM xxx
  • preds -> SELECT xxx
  • query -> WHERE xxx
  • groupby -> GROUP BY
  • sort -> ORDER BY
  • limit -> LIMIT
  • skip -> OFFSET

每一个部分会在其他章节中详细介绍。

字段解释

SchemaType

字段说明类型默认值必须版本
schemaschema的_idstring-
preds计算的字段、逻辑或者是schema表中的某一个字段PredItemType[]-
query筛选条件QueryType[]
groupby分组GroupbyItemType | GroupbyItemType[]undefined
sort排序SortType
limit返回条数。默认为20。如果设为-1,则全部返回。number20
skip用于分页,跳过n条记录,通常和limit一起使用。number0

注意事项

?> LEFT JOIN: Logicform里面没有left join的表达。left join为自动行为。例如,店铺里面有一个类别的属性。那么以下Logicform会根据schema里面的property自动形成left join:

{
"schema": "sales",
"preds": [
{"name":"销售额", "operator":"$sum", "pred":"amount"}
],
"groupby": "店铺_类别"
}

以下是对应的SQL语句:

SELECT 
store.`类别` AS `店铺_类别`,
sum(amount) AS `销售额`,
FROM sales
LEFT JOIN store ON store._id = sales.`店铺`
GROUP BY store.`类别`

?> 其他 JOIN:Logicform不支持其他join的表达