子查询

下面是一个通过子查询实现两个表关联查询的 SQL,含义为查询成绩大于80的学生信息

select * from student where id in (select student_id from score where score > 80)

数据组件支持设置子查询

  • 通过子查询,过滤某个字段值为其他表中的数据
  • 子查询支持嵌套

下面讲解查询成绩大于80的学生信息,通过子查询实现的步骤

数据准备

学生表结构,如下图所示

学生表数据,如下图所示

img

成绩表结构,如下图所示

成绩表数据,如下图所示

img

子查询设置

在页面上拖放学生表数据组件,点击“增加子查询”,选择子查询对应的表;可以添加多个子查询

选中子查询进行设置或者继续添加子查询,继续添加子查询跟第一层添加子查询是一样的操作

点击“设置”打开子查询设置,数据列选择“学生id”列、过滤设置为“成绩大于80”

主表设置

设置学生表数据组件的过滤条件

过滤条件设置为“主键 包含 子查询”

选择子查询中的“子查询-成绩表”

设置完毕,查询学生表,结果如下图所示

特别说明

  • 数据组件的设置过滤条件方法 setFilter 中,使用子查询的写法如下
    • $subquery: 是固定写法
    • subquery1:是子查询的编号
       let filter = "inn('fsid','$subquery:subquery1')";
       let data = this.comp("studentData");
       data.setFilter("filter1",filter);
       data.refreshData();

results matching ""

    No results matching ""