问题的陈述是因为有一个关于教授、系、类(class)和时间表的数据库。需要编写一个查询,返回所有教授的姓名及其各自的类(class)。每行必须包含教授的姓名,后跟教授教授的类(class)名称。就行而言,必须没有重复项。
我的模式,在表名和字段方面:
PROFESSOR: ID, NAME, DEPARTMENT_ID, SALARY
DEPARTMENT: ID, NAME
COURSE: ID, NAME, DEPARTMENT_ID, CREDITS
SCHEDULE: PROFESSOR_ID, COURSE_ID, SEMESTER, YEAR
我现在的代码:
SELECT DISTINCT p.Name AND c.NAME
FROM Prodessor p, Course c, Schedule S
WHERE
p.DEPARTMENT_ID = c.DEPARTMENT_ID
AND
p.ID = s.PROFESSOR_ID
AND
c.ID = c.COURSE_ID
我得到的结果是所有教授的列表,但没有多门类(class),只有一门。这里出了什么问题?它还提到 PROFESSOR.ID 与 COURSE.PROFESSOR_ID 无关,因此 p.ID = s.PROFESSOR_ID
是有效的
最佳答案
我认为下面的代码可以解决您的需求
SELECT distinct p.name,c.name
from Professor p
inner join Schedule s on p.id=s.professor_id
inner join course c on c.id=s.course_id;
关于mysql - 不同教授和类(class)的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58514309/