mysql - SQL 查询没有返回任何值

标签 mysql sql

您好,我有以下表结构。

Professor (EMP ID,Name,Status,Salary,Age)
Course(Course ID,Course Name,Points)
Works(Course ID,EMP ID,Class ID)

我需要执行以下操作。

为同一类(class)“第 10 类”选修了 2 门不同类(class) M1 和 M2 的员工的返回列表

这是我写的查询。

SELECT p.EmpID, p.Name, p.Status, p.Salary 
FROM professor p, course c, works w 
WHERE p.EmpID = w.EmpID
AND
w.CourseID = c.CourseID
AND
w.ClassID = 10
AND
c.CourseName IN ( SELECT CourseName FROM course WHERE CourseName = 'm1'
AND CourseName = 'm2')

但是即使数据库中有数据,查询也不会返回任何值。

最佳答案

这个问题通常叫做Relational Division

SELECT  a.EmpID, a.name
FROM    Professor a
        INNER JOIN Works b
            ON a.EmpID = b.EmpID AND b.ClassID = 10 
        INNER JOIN  Course c
            ON b.CourseID = c.CourseID
WHERE   c.CourseNAME IN ('M1', 'M2')
GROUP   BY a.EmpID, a.name
HAVING  COUNT(DISTINCT c.CourseNAME) = 2

关于mysql - SQL 查询没有返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15287782/

相关文章:

java - JDBC - 如何插入字符串值

javascript - 当用户属于某个组时,如何在 JS 中创建弹出窗口?

mysql - 如何获取特定行的列值的计数?

php - MYSQL查询每小时

mysql - 用他的相对 ID 在表中找到最大值

c# - 使用时如何给SQL添加参数

mysql - 从ubuntu连接到远程mysql服务器失败

php - 带变量的 WordPress 自定义查询

php - 在 joomla 模块安装期间创建表

sql - 在 Case 内嵌入 If 语句