我需要编写查询时需要一些帮助

检索在不受部门控制的项目中工作的雇员的名字和姓氏。还显示项目名称,员工部门编号和项目控制部门编号。 (所有这些都应显示在同一结果表中。)按字母升序显示结果(按姓氏,然后按名,然后按
项目名)。

表格:

Employee(Fname,Lname,SSN,DepartNum)
Department(Dname,Dnumber)
Project(Pname,Pnumber,DepNum)
WorksOn(EmpSSN,ProjNum)


查询的列标题:Fname,Lname,Pname,E_DNUM,P_DNUM

SELECT Fname,Lname,Project.Pname,(Employee.DepartNum) AS E_DNUM (Project.DepNum) AS P_DNUM
FROM Department,
    (SELECT *
    FROM Employee
    LEFT JOIN WorksOn
      LEFT JOIN Project
      ON Project.Pnumber = WorksOn.Pnum
    ON Employee.SSN = WorksOn.ESSN)
WHERE Project.DepNum = Department.Dnumber
AND Employee.DepartNum <> Department.Dnumber;

最佳答案

如果我不缺少任何内容,则可以加入所有表并应用条件Employee.DepartNum <> Project.DepNum以获得所需的结果:

select Fname,Lname,Pname, Employee.DepartNum E_DNUM,Project.DepNum P_DNUM
from Employee
join WorksOn on WorksOn.EmpSSN = Employee.SSN
join Project on WorksOn.ProjNum = Project.Pnumber
join Department on Project.DepNum = Department.Dnumber
where Employee.DepartNum <> Project.DepNum

关于mysql - 复杂联接和选择查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28789280/

10-16 06:44