Mysql 选择不存在字符串的行

Mysql 选择不存在字符串的行,mysql,Mysql,我正在制定一个时间表,如果员工在特定的一周内要工作,我会在时间表上加上他们。 我想展示一份在上述一周内不工作的员工名单 我的表为每周有人要工作添加一个帖子,因此我如何才能只收集某个特定星期不工作的用户,而不获取关于另一个星期的帖子 SELECT tblStaff.strName as staffName, tblWorktable.strName as workName FROM tblStaff, tblWorktable WHERE tblWorktable.intWeek <>

我正在制定一个时间表,如果员工在特定的一周内要工作,我会在时间表上加上他们。 我想展示一份在上述一周内不工作的员工名单

我的表为每周有人要工作添加一个帖子,因此我如何才能只收集某个特定星期不工作的用户,而不获取关于另一个星期的帖子

SELECT tblStaff.strName as staffName, tblWorktable.strName as workName 
FROM tblStaff, tblWorktable
WHERE tblWorktable.intWeek <> 9
ORDER BY tblStaff.strName ASC

这会收集第9周不工作的用户,但当然,它也会收集所有将要工作的用户,比如第10周或第32周,我不需要关于第9周的任何其他信息。

我想您可以尝试这样的查询:

SELECT staffName 
FROM Worktable 
WHERE staffName NOT IN 
    (SELECT DISTINCT staffName FROM Worktable WHERE intWeek = '$week') 
ORDER BY staffName ASC

这样,您可以选择不在该周工作人员列表中的所有员工。

这是一份工作说明书,但缺少一个问题。你面临的问题在哪里?最后,如果intWeek是一个数字字段,那么不应该使用“$week”,而应该使用$week。你还有什么问题?问题是,如果我使用这个查询,我没有得到任何第9周的帖子,然而,我确实得到了所有其他没有第9周的帖子,这是我不想要的。现在我知道这个查询不是一个很好的例子,我将编辑这篇文章。如果你有两个同名的人,你会怎么做?在你的桌子上加上木棍不是更好吗?另外,您可以使用subselect-WHERE staffId NOT IN SELECT staffId FROM Worktable WHERE intWeek=$week注意,如果您的周数从0到52,那么您将在明年遇到问题。我现在得到了正确的数据。但我还没有想到明年。谢谢你,我也得把数据放进去。