Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 组合需要三个表的查询SQL查询_Mysql_Sql_Database_Sorting - Fatal编程技术网

Mysql 组合需要三个表的查询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

我发现解决以下问题有点困惑

" 雇员可以分配给多个项目,项目可能有很多雇员。考虑下面的关系模式并为下面的查询编写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日之前出生并分配了“办公大楼”类型项目的员工的姓名,按姓名升序排序结果

(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;