2.5.3 关联查询

数据库提供join,用于多个数据表之间的关联查询。动态数据集可以用下面的方式使用数据库提供的join

  • 如果多个数据集在同一个数据库中,可以使用数据集的关联查询
  • 如果多个数据集在同一种类型的数据库中,可以使用sql数据集,通过写sql实现关联查询
  • 如果多个数据集在不同类型的数据库中,不能通过数据库的方式实现关联查询

在《2.2.3 数据集关系》一节中介绍的关联引用,开发者只需在页面上添加输入框组件,即可实现下拉选择和/或弹出选择。还可以将设置的关联引用直接作为关联查询的依据,实现关联查询。

注意区分这种关联查询和数据库提供的join,这种关联查询是用java代码实现的,没有使用数据库的能力,仅作为查询使用,支持跨库查询,相当于数据库提供的left join,不支持数据库提供的inner join、right join、outer join等能力。

例如:在学生数据集的民族列上设置关联引用,如下图所示:

1659679677930

1659679649014

在数据集参数中,可以将在民族列上定义的关联引用,作为输出数据集,如下图所示:

对学生数据集的查询,可以得到学生数据集自身的列和输出数据集中的列,在数据集属性编辑的数据列中勾选需要返回的列,如下图所示:

1659491781132

查询结果如下图所示:

如果来源选择的服务,服务地址的格式如下:

service://{serviceName}/main/api或者service:/main/api 调用当前应用请求/main/api,需要注意不写{serviceName}时:后是一个/
http(s)://www.baidu.com/main/api 调用外部api
service://oa/main/api 跨应用调用请求API,oa是应用的服务名
service://{serviceGateway}/oa/main/api  通过服务网关(过门户)跨应用调用请求API,oa是应用的服务名,
service://oa@tenanta/main/api 跨租户调用请求 (调用的服务必须是做过服务注册的),oa是应用的服务名,tenanta是租户code

如下调用当前服务的api请求:

results matching ""

    No results matching ""

    results matching ""

      No results matching ""