子查询
下面是一个通过子查询实现两个表关联查询的 SQL,含义为查询成绩大于80的学生信息
select * from student where id in (select student_id from score where score > 80)
数据组件支持设置子查询
- 通过子查询,过滤某个字段值为其他表中的数据
- 子查询支持嵌套
下面讲解查询成绩大于80的学生信息,通过子查询实现的步骤
数据准备
学生表结构,如下图所示
学生表数据,如下图所示
成绩表结构,如下图所示
成绩表数据,如下图所示
子查询设置
在页面上拖放学生表数据组件,点击“增加子查询”,选择子查询对应的表;可以添加多个子查询
选中子查询进行设置或者继续添加子查询,继续添加子查询跟第一层添加子查询是一样的操作
点击“设置”打开子查询设置,数据列选择“学生id”列、过滤设置为“成绩大于80”
主表设置
设置学生表数据组件的过滤条件
过滤条件设置为“主键 包含 子查询”
选择子查询中的“子查询-成绩表”
设置完毕,查询学生表,结果如下图所示
特别说明
- 数据组件的设置过滤条件方法 setFilter 中,使用子查询的写法如下
- $subquery: 是固定写法
- subquery1:是子查询的编号
let filter = "inn('fsid','$subquery:subquery1')";
let data = this.comp("studentData");
data.setFilter("filter1",filter);
data.refreshData();