根据2个其他关系从表中选择

时间:2015-10-14 21:36:51

标签: mysql sql join

所以......我们在这......这不是一个简单的问题所以请先仔细阅读...

这些是我的表

courses

instructor

teaches

  • 第一张图片是courses table
  • 第二个是instructors
  • 第三个是teaches

现在我想要instructors teaching一些courses有4个学分的名字

我试过这个:

SELECT *
FROM teaches
INNER JOIN course ON ( course.course_id = teaches.course_id
AND course.credits =4 )

但它尚未完成......我知道哪些课程有4个学分,但我不知道如何在这个查询和名为教师的表之间建立关系

2 个答案:

答案 0 :(得分:0)

SELECT i.name
FROM instructor I
JOIN teaches T
  ON I.ID = T.ID
JOIN courses C
  ON C.course_id = T.course_id
WHERE C.credits = 4

答案 1 :(得分:0)

另一种选择以简单的方式......

select * from instructors 
  where id in ( select distinct id 
                from teaches 
                where course_id in ( select distinct course_id 
                                     from courses 
                                     where credits = 4 
                                   )
             );