【问题标题】:List the department names of all the employees working on a project列出从事项目的所有员工的部门名称
【发布时间】:2014-10-28 22:28:27
【问题描述】:

我正在使用一个名为 company with Tables 的 mysql 数据库:

Employee-> |id_emp|fName|lName|id_Dept|

Department-> |id_Dept|dName|

Project-> |id_Proj|pName|id_Dept|status|budget|actBudget|

Emp_Proj-> |id_Emp|id_Proj|

我仍然对如何运行与 emp_proj 连接表一起使用的查询有疑问。

问题是“列出从事一个项目的所有员工的部门名称。

SELECT d.dName
FROM department d
JOIN ?????
WHERE id_Emp = id_Proj ???

我不确定要加入什么 b/c 每个员工都有一个 id_Dept,并且每个在项目中工作(或不工作)的员工都显示在表 emp_proj 中,所以我不确定如何选择 id_Emp 工作一个项目,然后将其与员工表进行比较以引用他们的 id_Dept,然后输出那些 dNames(部门名称)。

任何人都可以帮助处理这种类型的查询语法吗?天呐

【问题讨论】:

    标签: mysql select


    【解决方案1】:
    SELECT DISTINCT dName FROM Department 
    INNER JOIN Employee ON Employee.id_Dept = Department.id_Dept 
    INNER JOIN Emp_Proj ON Employee.id_emp = Emp_Proj.id_Emp 
    INNER JOIN Project ON Project.id_Proj = Emp_Proj.id_Proj 
    WHERE Project.pName = 'Whotever'
    

    这闻起来像一个学校项目。如果是这样,请确保您了解此查询的含义以及它的工作原理

    【讨论】:

    • 确实如此,感谢您的回复。我是 INNER JOIN 和 mysql 的新手……我没有意识到您可以在一个查询中使用多个 INNER JOIN。我正在考虑它的含义 b/c 我必须将它应用于类似的实例....tnx!
    猜你喜欢
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多