Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL为考勤案例选择行_Php_Mysql_Sql - Fatal编程技术网

Php MySQL为考勤案例选择行

Php MySQL为考勤案例选择行,php,mysql,sql,Php,Mysql,Sql,我有这些桌子: table 1 : attendance ------------------------------- ID | DATE | EMPLOYEE_ID | ------------------------------- 1 2013-09-10 1 2 2013-09-10 2 3 2013-09-10 3 ------------------------------- table 2: employee

我有这些桌子:

table 1 : attendance
-------------------------------
ID |   DATE     | EMPLOYEE_ID | 
-------------------------------
1   2013-09-10        1
2   2013-09-10        2
3   2013-09-10        3
-------------------------------


table 2: employee
---------------
ID | NAME     |
---------------
1    Smith
2    John
3    Mark
4    Kyle
5    Susan
6    Jim
---------------
显示员工选项的实际代码。
while($row=mysql_fetch_array($query)){
    echo "<option value='$row[employee_id]'>$row[first_name] $row[last_name]</option>";
}
?>
while($row=mysql\u fetch\u array($query)){
回显“$行[名]$行[姓]”;
}
?>
如何显示未在表1中注册的员工列表? 条件是,如果员工已在表1中注册,则他们不会出现在选项中。
while($row=mysql_fetch_array($query)){
    echo "<option value='$row[employee_id]'>$row[first_name] $row[last_name]</option>";
}
?>
我想在
元素的
中显示列表。所以它会回来:凯尔,苏珊,吉姆

请告诉我正确的查询,或者如果有更好的选择,也会很好。请给出一些解决方案并解释。多谢各位

更新/编辑:


如果表1中没有最新日期,则也基于当前日期,例如今天是2013-09-15。它将显示所有员工

您可以使用
左连接来执行此操作,然后检查是否没有匹配项:

select e.*
from employee e left outer join
     attendance a
     on e.id = a.employee_id
where a.employee_id is null;
这可能是MySQL中最有效的选项

编辑:

要包含特定日期,请将条件添加到
on
子句中:

select e.*
from employee e left outer join
     attendance a
     on e.id = a.employee_id and a.date = date('2013-09-20')
where a.employee_id is null;

如果我理解正确,这应该有效,让所有ID不在考勤表中的员工都参与进来

SELECT * FROM employee WHERE employee.ID NOT IN 
    (SELECT EMPLOYEE_ID FROM  attendance)

使用joinquery来实现这一点是的,它可以工作:)。但我忘了告诉你另一个情况。如果当前日期为:2013-09-20,则将显示所有员工。我该怎么做?再次感谢