Universe BASIC:关联.MST文件查询超21岁学生的CLASS.NAME
Universe BASIC TCL 关联文件获取班级名称的方法
要实现类似SQL INNER JOIN的效果,关联STUDENT.MST和CLASS.MST获取年龄超过21岁学生的班级名称,有两种常用的TCL命令方式:
方法一:直接在LIST命令中使用LOOKUP
适合简单的单字段关联,直接在查询时拉取关联文件的字段:
LIST STUDENT.MST CLASS WITH AGE > 21 LOOKUP CLASS.MST CLASS CLASS.NAME AS CLASS_NAME
- 语法说明:
LOOKUP <关联文件名> <关联匹配字段> <要提取的字段>,AS CLASS_NAME是给提取的班级名称字段设置别名,方便阅读结果。 - 前提:
CLASS.MST中用于匹配的主键字段是CLASS(和STUDENT.MST里的CLASS字段对应)。
方法二:使用JOIN命令实现关联查询
更接近SQL JOIN的逻辑,适合复杂关联场景:
- 先筛选出符合年龄条件的学生记录并保存为临时列表:
SELECT STUDENT.MST WITH AGE > 21 SAVE-list STUDENT_TEMP
- 将临时列表与
CLASS.MST关联,生成关联后的临时列表:
JOIN STUDENT_TEMP CLASS TO CLASS.MST CLASS GIVING JOINED_TEMP
- 列出关联结果中的班级名称:
LIST JOINED_TEMP CLASS.NAME
也可以合并为一行命令执行:
JOIN (SELECT STUDENT.MST WITH AGE > 21) CLASS TO CLASS.MST CLASS GIVING JOINED_TEMP; LIST JOINED_TEMP CLASS.NAME
两种方法都能实现需求,根据实际场景选择即可。
内容的提问来源于stack exchange,提问作者Jiansen Chan
相关产品推荐
相关产品推荐

