【问题标题】:Complex Joins and Select Query复杂连接和选择查询
【发布时间】:2015-03-01 02:04:45
【问题描述】:

我需要一些关于我需要编写的查询的帮助

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

表格:

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;

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

    如果我没有遗漏什么,您可以加入所有表格并应用条件Employee.DepartNum &lt;&gt; 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      • 2010-11-02
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      • 2019-06-20
      • 1970-01-01
      相关资源
      最近更新 更多