[英]mySql Subquery Answers Check Final Exam Questions
我對我的這些回答有疑問,如果你們能澄清我是對還是錯,將不勝感激,
一個雇員可能被分配到多個項目,而一個項目可能有許多雇員。 考慮以下關系模式,並為以下查詢編寫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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.