mysql - 使用 mysql 中的某些查询查看表中每个单元格的特定查询值?
问题描述
我有一张表包含表之间的一些关系?
school_table 的 school_id
class_table 的 class_id
教师表的教师 ID
subject_table 的 subject_id
我想通过替换子表中每个 id 的名称来检索整个表。前任。在将表格检索为表格或视图时,我想查看每个学校名称代替 school_id,班级名称代替 class_id 以及其他班级和科目以及表格中的所有行(如上图所示。)
上图是我存储在 mysql 数据库中的原始表。我想要这个结果:
assign_subject_id | Schoolname | teachername | classname | subjectName | session
1 | UCDC | rahul | one | math | 2018-19
2 | UCDC | gopi | two | CS | 2018-19
学校表:
school_id | schoolname
7 | UCDC
等等所有表。
谢谢你。
解决方案
假设你有 school_table、teacher_table、class_table、subject_table
每个都具有与 school_table 相同的模式(school_id | schoolname)
你需要加入
如果所有关系键都必须匹配,则 INNER JOIN
select a.assign_subject_id, b.schoolname, c.teachername
, d.classname, e.subjectName, a.session
from my_table a
inner join school_table b on a.school_id = b.school_id
inner join teacher_table c on a.teacher_id = c.teacher_id
inner join class_table d on a.class_id = d.class_id
inner join subject_table e on a.subject_id = e.subject_id
如果关系键不匹配,则 LEFT JOIN
select a.assign_subject_id, b.schoolname, c.teachername
, d.classname, e.subjectName, a.session
from my_table a
left join school_table b on a.school_id = b.school_id
left join teacher_table c on a.teacher_id = c.teacher_id
left join class_table d on a.class_id = d.class_id
left join subject_table e on a.subject_id = e.subject_id
推荐阅读
- python - Python中的帖子列表
- python - Python 编写一个 if 语句,从数据框列中提取文本并相应地移动值
- python - 在 keras 层中包装 python 可调用
- javascript - Thymeleaf-Spring-Boot中如何一个接一个地迭代?
- elasticsearch - 如何创建 Elasticsearch 时间点 (PIT)?
- python - 从具有特定环境的 make 运行 Python
- javascript - 在 Javascript 中添加事件监听器使我的(简单)数学加倍
- macos - 是否有任何选项可以使用电子检查 macOS 中的可访问权限状态(是否授予应用程序)
- azure-machine-learning-studio - 从 Azure 机器学习运行注册模型,无需下载到本地文件
- firebase - 如何修复这个 Firebase 一直给我这个错误 Paths must not contain // in them., null, java.lang.IllegalArgumentException: Invalid path