我有一个Access培训数据库,可以按会话和主题记录培训。拆分的原因是一个会话可能涵盖多个主题。我试图提出一个查询,以解决哪些员工错过了某个特定主题。我没有问题,查询列出了每位员工参加的培训,但反之则无效。数据模型如下所示:
答案 0 :(得分:1)
您可以使用联接将员工ID与主题相关联,然后使用not exists
运算符查找缺少主题的员工:
SELECT *
FROM tblEmployees e
WHERE NOT EXISTS (SELECT *
FROM tblTrainingTopics tt
JOIN tblTrainingSessions ts ON tt.sessionid = ts.id
JOIN tblTrainingLog tl ON tl.session = ts.id
WHERE tl.eenumber = e.eeid AND tt.topic = 'some_topic')