查询表基于另一个表的结果

时间:2017-07-25 15:20:58

标签: ms-access

我试图在Access中创建一个查询,根据另一个表中值的存在来选择表中的行。我正在查看一个表,其中包含不同ID号的状态,并检查ID所处的状态是否已经进入较低的状态。

例如,每个ID从学徒到熟练工到掌握。如果一个ID在主服务器上,如状态表中所述,那么在事件表中应该有一个记录,该ID也是学徒和主人。

查询应返回状态表中处于主状态但未根据事件表中的条目正确进行状态的ID。

使用下面的两个表,查询应返回ID 2. ID 2列在Master但从未处于Journeyman状态。

州表: ID Status 1 Master 2 Master 3 Apprentice 4 Journeyman

活动表: Date Status ID 7/25/17 Master 1 7/25/17 Master 2 7/24/17 Journeyman 1 7/24/17 Journeyman 3 7/20/17 Apprentice 4 7/20/17 Apprentice 3 7/20/17 Apprentice 2 7/20/17 Apprentice 1

我创建了一个查询来查找标记为Master的ID。但我不知道从那里去哪里查看“事件”表中的状态表中标记为“主”的ID。

这是我的简单查询。这是我第一次真正使用Access,任何指针都会受到赞赏!

enter image description here

1 个答案:

答案 0 :(得分:0)

如果没有Journeyman是唯一的事件标准,那么请考虑:

SELECT * FROM State WHERE Status="Master" AND NOT ID IN (SELECT ID FROM Events WHERE Status="Journeyman");

日期是保留字。不应使用保留字作为名称。更好的是EventDate。