簡體   English   中英

mySql子查詢答案檢查期末考試問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM