|
|
拉风的松树 · IF STATEMENT IN WHERE ...· 2 月前 · |
|
|
发财的移动电源 · Urbackup Server ...· 1 月前 · |
|
|
挂过科的葡萄 · 使用MERGE ...· 3 周前 · |
|
|
爱看球的杨桃 · 使用 FOR JSON 將查詢結果格式化為 ...· 2 周前 · |
|
|
爱看球的人字拖 · 运算符 | ClickHouse Docs· 2 周前 · |
|
|
苦恼的草稿本 · 小書痴的下剋上:為了成為圖書管理員不擇手段! ...· 8 月前 · |
|
|
腹黑的开心果 · 王文佶 – 年度校友评选· 1 年前 · |
|
|
快乐的水煮肉 · 基里连科兔_百度百科· 1 年前 · |
|
|
叛逆的山楂 · 什么是折叠面板组件,它有哪些属性_多端低代码 ...· 2 年前 · |
|
|
坚强的打火机 · spring kafka @KafkaLis ...· 2 年前 · |
| 数据结构 场景应用 大数据 select |
| https://yaoapps.com/doc/%E6%89%8B%E5%86%8C/QueryDSL/%E5%AD%90%E6%9F%A5%E8%AF%A2 |
|
|
发财的青椒
2 年前 |
query
可以通过描述
query
动态生成一张二维数据表或数值,在该数据表上查询或应用用于 WHERE, HAVING 查询条件。用于 SELECT 子查询场景时,必须设定别名,如设置
query
, 则
from
失效。
query
数据结构为
QueryDSL
。
Query DSL:
function select_child() {var query = new Query();var data = query.Get({debug: true,select: ["id", "name"],query: {comment: "通过子查询生成一张新数据表(必须设置别名)",select: ["id", "name as name"],from: "service as m",limit: 50,},orders: "id",limit: 20,});return data;}
解析后的
SQL语句
:
SELECT `id`, `name`FROM (SELECT `id`, `name` AS `name` FROM `service` AS `m`) AS `_SUB_`ORDER BY `id` ASC
Query DSL:
function select_wheres() {var query = new Query();var data = query.Get({select: ["id", "name"],from: "service",wheres: [{field: "type",op: "in",query: {comment: "查询查询厂商ID数组",select: ["id"],from: "service",},},],orders: "id",limit: 20,});return data;}
解析后的
SQL语句
:
SELECT `id`, `name`FROM `service`WHERE `type` IN (SELECT `id` FROM `service`)ORDER BY `id` ASC
joins
连接两张数据量较大的数据表,非常消耗服务器资源,且查询低效。对于数据统计分析等场景,应该使用数仓或数据分析引擎,根据业务场景设置业务数据结构、清洗归集逻辑和查询逻辑,最终归集为一张
宽表
,在宽表中进行统计查询。数据量较大的应用,推荐使用
象传智慧
Xu
数据分析引擎。
Gou Query DSL:
function joins() {var query = new Query ();var data = query.Get({debug: true,select: ["service.id", "service.name", "parent.city as city"],from: "service",joins: [{left: true,from: "service as parent",key: "parent.id",foreign: "service.id",},],});return data;}
解析后的
SQL语句
:
select `service`.`id`, `service`.`name`, `parent`.`city` as `city`from `service`left join `service` as `parent` on `parent`.`id` = `service`.`id`
查询结果为:
| id | name | city |
|---|---|---|
| 1 | 电脑 | 北京 |
| 2 | 键盘 | 北京 |
| 3 | 鼠标 | 北京 |
| 字段 | 类型 | 说明 | 必填项 |
|---|---|---|---|
| from | String |
连接表名称,与 Object QueryDSL
from
相同。
|
是 |
| key | String | 关联连接表字段名称 | 是 |
| foreign | String | 关联目标表字段名称(需指定表名或别名) | 是 |
| left | Bool |
true
连接方式为
LEFT JOIN
, 默认为
false
连接方式为
JOIN
|
否 |
| right | Bool |
true
连接方式为
RIGHT JOIN
, 默认为
false
连接方式为
JOIN
|
否 |
sql
非必要,勿使用 除非无法使用 Query DSL 描述查询逻辑,不要直接编写 SQL 语句。直接编写 SQL 语句将加大应用程序维护难度;增加系统信息泄露安全风险;因查询逻辑不可控,可能造成数据库或数仓宕机;数据迁移、数据库、数仓、数据分析引擎升级, 也可导致查询语句不可用 。
Gou Query DSL:
{"sql": {"stmt": "SELECT `id`, `name` FROM `service` WHERE id = ?","args": [1]}}
解析后的
SQL语句
:
SELECT `id`, `name` FROM `service` WHERE id = 1
Object SQL 数据结构
| 字段 | 类型 | 说明 | 必填项 |
|---|---|---|---|
| stmt | String | SQL 语句 | 是 |
| args | Array\<Any > | 参数表 | 否 |
query
可以通过描述
query
动态生成一张二维数据表或数值,在该数据表上查询或应用用于 WHERE, HAVING 查询条件。用于 SELECT 子查询场景时,必须设定别名,如设置
query
, 则
from
失效。
query
数据结构为
QueryDSL
。
Query DSL:
function select_child() {var query = new Query();var data = query.Get({debug: true,select: ["id", "name"],query: {comment: "通过子查询生成一张新数据表(必须设置别名)",select: ["id", "name as name"],from: "service as m",limit: 50,},orders: "id",limit: 20,});return data;}
解析后的
SQL语句
:
SELECT `id`, `name`FROM (SELECT `id`, `name` AS `name` FROM `service` AS `m`) AS `_SUB_`ORDER BY `id` ASC
Query DSL:
function select_wheres() {var query = new Query();var data = query.Get({select: ["id", "name"],from: "service",wheres: [{field: "type",op: "in",query: {comment: "查询查询厂商ID数组",select: ["id"],from: "service",},},],orders: "id",limit: 20,});return data;}
解析后的
SQL语句
:
SELECT `id`, `name`FROM `service`WHERE `type` IN (SELECT `id` FROM `service`)ORDER BY `id` ASC
joins
连接两张数据量较大的数据表,非常消耗服务器资源,且查询低效。对于数据统计分析等场景,应该使用数仓或数据分析引擎,根据业务场景设置业务数据结构、清洗归集逻辑和查询逻辑,最终归集为一张
宽表
,在宽表中进行统计查询。数据量较大的应用,推荐使用
象传智慧
Xu
数据分析引擎。
Gou Query DSL:
function joins() {var query = new Query();var data = query.Get ({debug: true,select: ["service.id", "service.name", "parent.city as city"],from: "service",joins: [{left: true,from: "service as parent",key: "parent.id",foreign: "service.id",},],});return data;}
解析后的
SQL语句
:
select `service`.`id`, `service`.`name`, `parent`.`city` as `city`from `service`left join `service` as `parent` on `parent`.`id` = `service`.`id`
查询结果为:
| id | name | city |
|---|---|---|
| 1 | 电脑 | 北京 |
| 2 | 键盘 | 北京 |
| 3 | 鼠标 | 北京 |
| 字段 | 类型 | 说明 | 必填项 |
|---|---|---|---|
| from | String |
连接表名称,与 Object QueryDSL
from
相同。
|
是 |
| key | String | 关联连接表字段名称 | 是 |
| foreign | String | 关联目标表字段名称(需指定表名或别名) | 是 |
| left | Bool |
true
连接方式为
LEFT JOIN
, 默认为
false
连接方式为
JOIN
|
否 |
| right | Bool |
true
连接方式为
RIGHT JOIN
, 默认为
false
连接方式为
JOIN
|
否 |
sql
非必要,勿使用 除非无法使用 Query DSL 描述查询逻辑,不要直接编写 SQL 语句。直接编写 SQL 语句将加大应用程序维护难度;增加系统信息泄露安全风险;因查询逻辑不可控,可能造成数据库或数仓宕机;数据迁移、数据库、数仓、数据分析引擎升级, 也可导致查询语句不可用 。
Gou Query DSL:
{"sql": {"stmt": "SELECT `id`, `name` FROM `service` WHERE id = ?","args": [1]}}
解析后的
SQL语句
:
SELECT `id`, `name` FROM `service` WHERE id = 1
Object SQL 数据结构
| 字段 | 类型 | 说明 | 必填项 |
|---|---|---|---|
| stmt | String | SQL 语句 | 是 |
| args | Array\<Any > | 参数表 | 否 |
|
|
发财的移动电源 · Urbackup Server doesn't start up after updating to 2.5.25 - Server - UrBackup - Discourse 1 月前 |
|
|
爱看球的人字拖 · 运算符 | ClickHouse Docs 2 周前 |
|
|
腹黑的开心果 · 王文佶 – 年度校友评选 1 年前 |
|
|
快乐的水煮肉 · 基里连科兔_百度百科 1 年前 |