php - 获取特定日期不在另一个表中的记录。 MySQL

标签 php mysql database

我需要取回某个日期不在另一个表中的数据。

+------+--------+---------------------+---------------------+
| calID| jobID  | startDate           | endDate             |
+-- ---+--------+---------------------+---------------------+
| 1    | 2      | 2016-05-13 00:00:00 | 2016-05-13 00:00:00 |              
| 2    | 3      | 2016-05-14 00:00:00 | 2016-05-14 00:00:00 |
| 3    | 1      | 2016-05-15 00:00:00 | 2016-05-15 00:00:00 |
+------+--------+---------------------+---------------------+

这是 job_calendar。我需要在给定日期与工作无关的员工。

+------+--------+---------+
| id   | calID  | staffID |
+-- ---+--------+---------+
| 1    | 1      | 1       |             
| 2    | 1      | 2       |
| 3    | 1      | 3       |
+------+--------+---------+

这是工作人员和职位的 job_staff 表。

+---------+-----------+----------+
| staffID | firstName | lastName |
+---------+-----------+----------+
| 1       | John      | Smith    |             
| 2       | Max       | Power    |
| 3       | Jane      | Doe      |
+---------+-----------+----------+

最后是resource_staff 表。这存储了所有用户信息。我之前一直在尝试一些查询,虽然我认为我已经很接近了,但我需要一些帮助。

SELECT
    *
FROM              
    resource_staff
LEFT JOIN 
    job_staff
ON 
    resource_staff.staffID = job_staff.staffID
LEFT JOIN
    job_calendar
ON
    job_staff.calID = job_calendar.calID
WHERE
    job_staff.staffID IS NULL
AND
    job_calendar.startDate = "2016-05-13 00:00:00"

任何帮助将不胜感激,抱歉,如果我造成了麻烦或其他方面。

编辑:

我希望获得用户选择的特定日期内尚未分配给作业的所有结果。

最佳答案

试试这个

SELECT
*
FROM              
resource_staff 
where 

staffID  NOT IN (select jc.staffID  from job_calendar as jc 
JOIN job_staff  as js ON js.calID=jc.calID 
WHERE "2016-05-13 00:00:00" BETWEEN jc.startDate and jc.endDate )

关于php - 获取特定日期不在另一个表中的记录。 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37134231/

相关文章:

php - 在数据内容中存储文本和使用 bootstrap-popover.js 的兼容性如何?

php - 使用连接库时如何在 codeigniter 上创建别名

php - Express Web 框架中 session key 的重要性

mysql - SQL中的IF表达式

mysql - 从1开始截断后插入;但删除后插入会从之前的值恢复

database - 在编程中过滤表还是在数据库中过滤表更快?

Java 连接到 Cassandra NoHostAvailableException

php - 从 <option> 中选择多个字段并将它们添加到数据库

mysql - 有更好的方法来执行此查询吗?

php - MySQL、PHPMyAdmin - 表列不接受十进制数据类型长度