gpt4 book ai didi

mysql - SQL查询错误

转载 作者:行者123 更新时间:2023-11-29 13:59:19 25 4
gpt4 key购买 nike

您好,我有以下数据库架构

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

我已编写以下查询来返回已教授类(class) M1 或 M2 但不是两者的员工列表

SELECT p.empid,p.name
FROM professor p,course c,works w
WHERE p.empid = w.empid
AND w.courseid = c.courseid
AND ((c.coursename = ‘m1’ AND c.coursename != ‘m2’)
OR
(c.coursename = ‘m2’ AND c.coursename != ‘m1’))

上面的查询正确吗,因为我是 SQL 新手,请帮忙

最佳答案

这个问题通常被称为关系划分。下面的查询的作用是获取教授 m1m2 等类(class)的所有教授的姓名。过滤掉教授后,它会计算不同的 CourseName 的数量。显然,如果只教授一门类(class),它将返回 1 :D

SELECT  a.EmpID, a.Name
FROM Professor a
INNER JOIN Works b
ON a.EmpID = b.EmpID
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) = 1

关于mysql - SQL查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15332145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com