我目前正在创建一个应用程序,该应用程序将在某个项目上分配员工。这些员工可以被移除到项目中,也可以再次放回项目中。
我有这些表:
employees_tbl
id
first name
last name
projects_tbl
id
name
project_assignment_tbl
id
project_id
employee_id
date_removed (NULL)
因此,每次我们从项目中删除用户时,project_assignment_tbl
中的 date_removed
列都会带有日期/时间戳,并且每次我们向项目添加员工时,新数据将插入到 project_assignment_tbl
中。我这样做的原因是因为在我的应用程序中我还想获取项目分配历史记录。
因此,在我的申请中,我将转到一个特定项目(/project/1
),然后我将从那里分配一名员工。
我的问题是如何显示/查询未分配到特定项目的员工列表?这听起来可能很简单,但我在如何显示之前分配的用户并在项目中删除它们时遇到问题,但我想再次显示它们,因为它们已被删除到某个项目。
我们将非常感谢您的帮助!谢谢你!
最佳答案
如果您的意思是从未分配给项目:
SELECT e.*
FROM employees_tbl e
WHERE e.id NOT IN (SELECT employee_id
FROM project_assignment_tbl
WHERE project_id=1234) // sample project ID
如果您的意思是当前未分配给项目:
SELECT e.*
FROM employees_tbl e
WHERE e.id NOT IN (SELECT employee_id
FROM project_assignment_tbl
WHERE project_id=1234 AND date_removed IS NULL)
关于php - 用于显示未分配到项目的员工的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30541967/