使用“IN”子句对多个表进行MySql连接

使用“IN”子句对多个表进行MySql连接,mysql,join,Mysql,Join,我有两张课表和两门课 时间表 学生与教师 现在我想使用JOIN-LIKE获取与teacher_id=1相关的所有时段 SELECT t.period FROM timetable t JOIN student_table st ON t.student_teacher_id IN (st.id) WHERE st.teacher_id = 1 对吗?请任何人告诉我获取列表的最佳方式…正如其他人所说 您必须重新构造数据库 您的查询应该是这样的 SELECT t.period FROM Stude

我有两张课表和两门课

时间表 学生与教师 现在我想使用JOIN-LIKE获取与teacher_id=1相关的所有时段

SELECT t.period FROM timetable t
JOIN student_table st ON t.student_teacher_id IN (st.id)
WHERE st.teacher_id = 1

对吗?请任何人告诉我获取列表的最佳方式…

正如其他人所说

您必须重新构造数据库

您的查询应该是这样的

SELECT t.period FROM Student_Teacher st
LEFT JOIN Timetable t ON st.id IN (t.student_teacher_id )
WHERE st.teacher_id = 1

你有什么学生证,老师证,这是个异常现象。你应该考虑修改表格的结构。另外,学生表是什么样子的?是的,结构非常混乱。请正确地规范化您的数据。然后你的大部分问题就会消失。
SELECT t.period FROM timetable t
JOIN student_table st ON t.student_teacher_id IN (st.id)
WHERE st.teacher_id = 1
SELECT t.period FROM Student_Teacher st
LEFT JOIN Timetable t ON st.id IN (t.student_teacher_id )
WHERE st.teacher_id = 1