MySQL基于Where参数从3张不同表查询符合条件数据的实现问询
MySQL查询实现逻辑梳理
核心前提
默认涉及3张业务表,字段对应关系如下:
- take表(选课成绩表):存储代表选课的成绩记录,核心字段为
代表编号、模块代码、成绩 - 代表信息表:存储代表基础信息,核心字段为
代表编号、姓名 - 模块信息表:存储模块基础信息,核心字段为
模块代码、模块名称
分步实现逻辑
- 第一步:筛选take表中符合条件的记录,过滤条件为
成绩 < 40,得到目标选课记录集 - 第二步:将第一步得到的结果集,和代表信息表通过公共字段
代表编号做内连接,匹配得到对应代表的姓名信息 - 第三步:再将第二步得到的结果集,和模块信息表通过公共字段
模块代码做内连接,匹配得到对应模块的名称信息 - 第四步:指定最终要返回的字段:代表编号、姓名、模块代码、模块名称即可
示例SQL语句参考
SELECT d.代表编号, d.姓名, m.模块代码, m.模块名称 FROM take t INNER JOIN delegate d ON t.代表编号 = d.代表编号 INNER JOIN module m ON t.模块代码 = m.模块代码 WHERE t.成绩 < 40;
表名和字段名可根据实际库表结构调整,核心逻辑保持不变即可。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

