mysql - 查询相关表

标签 mysql database

我目前正在尝试运行一个查询,该查询将显示所有相互关联的表。我没有制作表格设计。所以我在制作时遇到了一些麻烦:不清楚 office_hours 表与 schedule 表的关联方式?总体而言,我如何才能正确显示通过查询关联的所有表?

SELECT * 
FROM schedule
INNER JOIN semester ON schedule.semester_id = semester.id
INNER JOIN office_hours ON office_hours.id = schedule.???

最佳答案

我认为表 schedule 中的 ID 只是一个 auto_increment 列和加入 schedule 的正确方法office_hoursoffice_hours.schedule_id = schedule.semester_id

select      *
from        schedule 
            inner join semester 
                on schedule.semester_id = semester.id
            inner join office_hours
                on office_hours.schedule_id = schedule.semester_id

更新 1

select      *
from        schedule 
            inner join semester 
                on schedule.semester_id = semester.id
            inner join office_hours
                on office_hours.schedule_id = schedule.semester_id
            INNER JOIN faculty
                ON faculty.id = office_hours.faculty_id
            INNER JOIN Section
                ON Section.faculty_ID = faculty.id AND
                    Section.Schedule_ID = Schedule.ID
            INNER JOIN class
                ON Class.ID = Section.Class_ID
            INNER JOIN major_class_br
                ON major_class_br.class_ID = Class.ID
            INNER JOIN  major_minor 
                ON major_class_br.major_minor_id = major_minor.ID

假定所有 ID链接列 都存在于每个表中,这就是使用 INNER JOIN 的原因。否则,使用 LEFT JOIN

关于mysql - 查询相关表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13252509/

相关文章:

java - 任务不是由 servlet 执行的

mysql - 如何获得不重复的用户总数?

c# - 我将如何通过此查询选择更多列

java - 父级有子级列表或子级有父级引用

sql - 如何在oracle sql中解析下面的xml

mysql - 什么样的锁定/事务隔离级别适合这种情况?

带索引的属性的 SQL 映射值

android - 数据库文件未从 Assets 复制到 data/data/<package name>/databases

mysql - 如何更新mysql中的一行并插入新记录?

mysql - 1 秒内有如此多的请求更新一条特定数据记录