gpt4 book ai didi

mySql 子查询答案检查期末考试问题

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

我对我的这些答案有一些疑问,如果你们能澄清我是对还是错,我将不胜感激,

问题:

一名员工可能被分配到多个项目,而一个项目可能有多名员工。考虑以下关系架构并为以下查询编写 SQL 语句。

Employees (empID, empName, empDOB, empAddress, salary, deptID, jobID)

Assignments (empID, projID, assignedDate, completionDate, status)

Projects (projID, projDescription, startDate, endDate, projType)

(a) 显示 1980 年 1 月 31 日之前出生并分配“办公大楼”类型项目的员工姓名,按姓名升序对结果进行排序。 (5分)

(b) 检索分配了至少两 (2) 个项目的 empID。 (5分)

答案:

(a) SELECT empName FROM Employees WHERE empDOB < '31-01-1980' AND projType = (SELECT projType FROM Projects WHERE projType = 'Office Complex') ORDER BY empName; 

(b) SELECT empID FROM Employees GROUP BY (SELECT projID From Projects) HAVING COUNT(*)>1 ORDER BY empID;

我觉得第二个问题的答案可能是错误的。

最佳答案

对于 a) 部分,我将连接表格以将员工与项目类型相匹配:

 SELECT empName 
FROM Employees
INNER JOIN Assignments ON Assignments.empID = Employees.empID
INNER JOIN Projects ON Assignments.projID = Projects.projID
WHERE empDOB < 31-01-1980 AND projType = 'Office Complex'
ORDER BY empName;

就目前情况而言,您的语句尝试在 Employee 表中查找 projType = 'Office Complex',但该表并不存在。

对于第二个问题,您需要的一切都在“作业”表中:

SELECT empID, COUNT(projID)
FROM Assignments
GROUP BY empID
HAVING COUNT(projID) > 1

关于mySql 子查询答案检查期末考试问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580606/

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