mysql - 不同教授和类(class)的 SQL 查询

标签 mysql sql schema

问题的陈述是因为有一个关于教授、系、类(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/

相关文章:

mysql - 用mysql实现分页(限制和偏移)

sql - 对树数据进行分组、聚合和求和的最佳方法是什么?

apache - 使用 apache solr 去除口音

mysql - 在 SQL 中不使用聚合函数的最高/最低值

mysql - 当在 mydb.titles 中插入一行时,我想创建一个触发器来更新其他表 mydb.authors 中的字段

php - 按金额返回前三笔交易?

mysql - 更新不同表中列子字符串的MYSQL查询

mysql - 从 Delphi XE3 连接到嵌入式 MySQL

Mongodb架构设计

java - 使用 Hibernate 在运行时创建数据库?