首页 > 解决方案 > 使用 mysql 中的某些查询查看表中每个单元格的特定查询值?

问题描述

我有一张表包含表之间的一些关系?

表格样本: 在此处输入图像描述

我想通过替换子表中每个 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

等等所有表。

谢谢你。

标签: mysql

解决方案


假设你有 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

推荐阅读