Mysql 组合需要三个表的查询SQL查询
我发现解决以下问题有点困惑 " 雇员可以分配给多个项目,项目可能有很多雇员。考虑下面的关系模式并为下面的查询编写SQL语句。Mysql 组合需要三个表的查询SQL查询,mysql,sql,database,sorting,Mysql,Sql,Database,Sorting,我发现解决以下问题有点困惑 " 雇员可以分配给多个项目,项目可能有很多雇员。考虑下面的关系模式并为下面的查询编写SQL语句。 Employees (empID, empName, empDOB, empAddress, salary, deptID, jobID) Assignments (empID, projID, assignedDate, completionDate, status)` Projects (projID, projDescription, startDate, en
Employees (empID, empName, empDOB, empAddress, salary, deptID, jobID)
Assignments (empID, projID, assignedDate, completionDate, status)`
Projects (projID, projDescription, startDate, endDate, projType)
(a) 显示1980年1月31日之前出生并分配了“办公大楼”类型项目的员工的姓名,按姓名升序排序结果
(b) 检索分配了至少两(2)个项目的EMPID。
"
到目前为止,我的答案是肯定的
(a) 从empDOB<'1980年1月31日'和….
"
请帮帮我试试这个:
(A)
(b)
谢谢,但是你能告诉我……(b)检索至少分配了两(2)个项目的EMPID。“嘿,它们还可以,但是没有不使用JOIN的方法,我想我的讲师不希望使用JOIN标记……我更新了我的解决方案。如果可以,请毫不犹豫地给它打分。我希望这会有帮助。你使用表间连接(谷歌),你可能会在你的家庭作业中找到帮助,但你会在考试时做什么?
SELECT employee.empName
FROM Assignments ass
JOIN Employees employee
ON employee .empID= ass.empID
JOIN Projects project
ON project.projID= ass .projID
WHERE employee.empDOB < '31-january-1980'
AND project.projType = ‘Office Complex’
ORDER BY employee.empName;
SELECT DISTINCT employee.empName
FROM Employees employee
WHERE employee.empDOB < '31-january-1980'
AND employee.empID IN (
SELECT ass.empID
FROM Assignments ass
WHERE ass.projID IN (
SELECT project.projID
FROM Projects project
WHERE project.projType = ‘Office Complex’
)
)
ORDER BY employee.empName ASC;
SELECT ass.empID, COUNT(*) as counting
FROM Assignments ass
GROUP BY ass.empID
HAVING COUNT(*) >= 2;