php - 用于显示未分配到项目的员工的 MySQL 查询

标签 php mysql

我目前正在创建一个应用程序,该应用程序将在某个项目上分配员工。这些员工可以被移除到项目中,也可以再次放回项目中。

我有这些表:

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/

相关文章:

javascript - 嗅探 "Print Screen" key 以将其内容自动附加到撰写的邮件上

php - Laravel 布局不起作用

php - 上传图像时如何在ckeditor中固定图像宽度?

MYSQL - 错误代码 : 1242 subquery returns more than 1 rows

mysql - 根据sql中的另一个表显示所有日期的计数?

mysql - 查询中的查询 - 根据表 2 的计数更新表 1

php - 句子中带括号的单词如何大写

php - MySQL 查询将列中所有值的长度设置为 12

mysql - Yii 按关系条件过滤模型的范围

php - 多标签搜索