用于显示未在项目中分配的员工的MySQL查询

时间:2015-05-30 03:33:40

标签: php mysql

我目前正在创建一个应用程序,用于为某个项目分配员工。这些员工可以被移除到项目中,并可以再次返回项目。

我有这些表格:

employees_tbl
id
first name
last name

projects_tbl
id
name

project_assignment_tbl
id
project_id
employee_id
date_removed (NULL)

因此,每次我们将用户移至项目时,date_removed中的project_assignment_tbl列都将加上日期/时间戳,每次我们向项目添加员工时,都会插入新数据在project_assignment_tbl我之所以这样做是因为在我的应用程序中我还想获得项目作业历史记录。

所以在我的应用程序中,我将转到一个特定项目,(/project/1),然后我将从那里指派一名员工。

我的问题是,如何显示/查询未分配给特定项目的员工列表?这可能听起来很简单,但我在如何显示之前分配的用户以及在项目中删除它们时遇到了问题,但我想再次显示它们,因为它们已被删除到某个项目。

非常感谢您的帮助!谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的意思是从未分配到项目:

 Sub highlight(phm as variant)
 Dim w As Workbook
 Dim sh As Worksheet
 Dim x As Integer
 Dim rn As Range
 Dim k As Long
 Dim number() As integer

 If phm <> 0 Then

 phm = Split(phm, ",")
 ReDim number(LBound(phm) To UBound(phm)) As Integer

 Set sh = w.Worksheets("sheet1")
sh.Select
Cells.Find("Number Type").Select

Set rn = sh6.UsedRange
k = rn.Rows.Count + rn.Row - 1
On Error Resume Next
For i = 1 To k
For j = LBound(number) To UBound(number)
number(j) = CInt(phm(j))
If Err.number = 0 Then
If ActiveCell.Value = number(j) Or IsEmpty(ActiveCell.Value) Then
Selection.Interior.ColorIndex = xlNone
Else
Selection.Interior.Color = vbGreen
Exit For
End If
End If

Next j
ActiveCell.Offset(1, 0).Select 'moves activecell down one row.
Next i


End If
ActiveWorkbook.Save


End Sub

如果您的意思是当前没有分配到项目:

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