12.11 匹配的存在性检测
在两个表中,根据匹配的存在性检测查找记录。
根据成绩表和学生表,查询两科分数差超过 30 分的学生。
| Student |
|---|
| ID |
| Class |
| Name |
| … |
| Score |
|---|
| StudentID |
| Subject |
| Score |
| … |
只要比较每位同学的最高分和最低分是否超过 30 分即可。
脚本:
| A | |
|---|---|
| 1 | =connect(“db”) |
| 2 | =A1.query(“select * from Student”) |
| 3 | =A1.query@x(“select * from Score”) |
| 4 | =A3.group(StudentID) |
| 5 | =A4.select(~.max(Score)-~.min(Score)>30) |
| 6 | =A5.id(StudentID) |
| 7 | =A2.join@i(ID,A6) |
A1 连接数据库
A2 查询学生表
A3 查询成绩表
A4 成绩表按学生 ID 分组
A5 选出最高分和最低分相差超过 30 分的学生
A6 按学生 ID 去重
A7 使用 A.join@i() 连接过滤
运行结果:
| ID | Name | Class |
|---|---|---|
| 4 | Emily Smith | Class 1 |
| 8 | Megan | Class 1 |
| … | … | … |
