MYSQL-获取教师1和2给出的课程名称

MYSQL-获取教师1和2给出的课程名称,mysql,Mysql,如果您有以下表格: course: +---------------+---------------+ | id | Name | |---------------|---------------| | 1 | Maths | | 2 | English | | 3 | Art

如果您有以下表格:

   course:
   +---------------+---------------+
   |      id       |     Name      |
   |---------------|---------------| 
   |      1        |   Maths       | 
   |      2        |   English     |        
   |      3        |   Art         |        
   |      4        |   Physics     |        
   |      5        |   Psychology  |        
   +-------------------------------+        

   course_teacher:                                   
   +----------------------+---------------------+        
   |      course_id       |     teacher_id      |
   |----------------------|---------------------|
   |      1               |   1                 |
   |      2               |   1                 |
   |      1               |   2                 |
   |      2               |   2                 |
   |      3               |   2                 |
   +----------------------v---------------------+
我怎样才能得到老师1和2给出的课程名称列表

我尝试的:
从(1,2)中的
课程教师
位置
教师id
中选择不同的(
课程id

然而,该查询过滤了它没有过滤的教师1和教师2的所有双重结果

SELECT DISTINCT(name) FROM courses c
INNER JOIN course_teachers ct ON c.id = ct.course_id 
WHERE ct.teacher_id = 1 OR ct.teacher_id = 2;

如果您只想为两位教师开设课程,那么这是相关的:

SELECT name FROM courses c
INNER JOIN course_teachers ct ON c.id = ct.course_id 
WHERE ct.teacher_id = 1 OR ct.teacher_id = 2 GROUP BY c.id 
HAVING COUNT(c.id) = 2;

我现在找到了它
加入了
表格:

SELECT vk1.`course_id` 
FROM `course_teacher` vk1, `course_teacher` vk2
WHERE vk1.`teacher_id` =2
AND vk2.`teacher_id` =10
AND vk1.`course_id` = vk2.`course_id` 
GROUP BY vk1.`course_id` 

请注意,我没有包括课程名称!这需要额外的
加入

才能获得基本的“加入备忘单”,我推荐这一点是不够的:好的,我已经找到了一个解决方案,但你的看起来更好。非常感谢。