クエリ言語リファレンス
このガイドでは、Docwize Query Builder 向けの JSON ベースのクエリの書き方を説明します。以下の DSL(ドメイン固有言語)ルールに従ってクエリを構築してください。システムはこれを SQL に変換します。
クエリの構造
クエリは節(clauses)の JSON 配列です。節は以下の順序で処理されます:
- from: データソース(テーブル、ビュー、または仮想ビュー)を指定する
- join/left_join/outer_join: 追加のテーブルまたはビューを関連付ける
- select: 返すフィールドまたは式を列挙する
- where スタイルのフィルター(
and、or、比較演算子) - groupby + aggregations: グループ化とサマリー関数
- order_by: 最終結果を並び替える
骨格:
[
{ "from": [ { "var": "TableOrView" } ] },
{ "join": [ tableSpec, onCondition ] },
{ "select": [ colSpec, ... ] },
{ "and": [ cond1, cond2 ] },
{ "groupby": [ ... ] },
{ "aggregations": [ ... ] },
{ "order_by": [ ... ] }
]
仮想 JSON ビューの参照
キャッシュされた「仮想ビュー」は、その 名前 または ID を波括弧で囲んで参照することでテーブルと同様に扱えます:
- ID による参照:
{42}はid = 42のビューを参照します。 - 名前による参照:
{MyViewName}(大文字・小文字を区別しない)は、nameが一致するビューを参照します。
from または join で参照すると、そのビューが出力するすべての列が select、フィルターなどで使用できるようになります。エイリアスを追加することもできます:
{ "from": [ { "var": "{42}", "alias": "v" } ] }
トップレベルの節
| 節 | 目的 | 例 |
|---|---|---|
from | ベースソース | { "from":[ {"var":"Users"} ] } または { "from":[ {"var":"{ReportsSummary}","alias":"r"} ] } |
join | 内部結合 | { "join":[ tblSpec, condSpec ] } |
left_join | 左(外部)結合 | { "left_join":[ tblSpec, condSpec ] } |
outer_join | 左外部結合(left_join のエイリアス) | { "outer_join":[ tblSpec, condSpec ] } |
select |