我有两张table:
站点:此表表示站点列表及其相关信息任务:按站点和日期为特定员工分配任务的表
我需要的是一个查询,获取所有网站还没有在一个特定日期的任务。
最接近的是:
SELECT
sites.ID,
sites.name
FROM
sites
LEFT JOIN tasks ON tasks.site_ID = sites.ID
WHERE tasks.ID IS NULL
此查询返回尚未在整个任务表中列出的站点,而不仅仅是特定日期的站点。
我对这些更复杂的问题还比较陌生,所以请容忍我,因为我可能遗漏了一些明显的东西。我只是对这个问题很费劲。
要重申如果表1是站点,表2是任务,我需要一个查询,以获取表1中尚未在表2中列出的特定日期的所有项目。
2条答案
按热度按时间dsf9zpds1#
使用相关子查询:
其中问号是您要检查的日期。
rjee0c152#
如果我理解正确,您需要所有尚未分配的站点/日期组合。
如果是这样的话,你可以用
CROSS JOIN
生成所有可能的组合,然后使用某种方法LEFT JOIN/WHERE
--要删除现有的:如果只查找一个日期,则更简单的查询是:
对于多个日期,第一种方法更简单——您可以替换
d
包含您关心的日期列表的子查询。