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`
请注意,我没有包括课程名称!这需要额外的加入
才能获得基本的“加入备忘单”,我推荐这一点是不够的:好的,我已经找到了一个解决方案,但你的看起来更好。非常感谢。