我正在开发一个基于网络的培训管理系统,为员工提供每周简短的测验。在网站的配置文件部分中,员工应该能够看到他没有参与的测验列表。我可以让系统显示它们但不是在改进系统后,它没有显示。
首先,我有以下数据库设计:
Quiz Table: QuizID, Title, Description, IsSent
UserQuiz Table: ID, QuizID, Score, DateTimeComplete, Username
IsSent是一个标志,用于引用已发送的测验
我把IsSent放在测验表中,因为我希望管理员能够在一天内插入大约50个测验。然后,系统将处理每周发送它们的情况。现在,当用户想要查看他的个人资料并看到他没有参加的测验时,他应该看到已经发送的测验列表并且他没有参与。
我现在面临的问题是,系统会显示未作为员工未参与的测验列表发送的测验,这是错误的。 那我该如何解决这个问题?
我的查询:
SELECT Title, Description
FROM dbo.Quiz
WHERE (NOT EXISTS
(SELECT QuizID
FROM dbo.UserQuiz
WHERE (dbo.Quiz.QuizID = QuizID) AND (Username = @Username)))
答案 0 :(得分:1)
在查询末尾添加以下行
AND IsSent = 1
P.S。我假设你的isSent
列是tinyint而1 = true
答案 1 :(得分:1)
如果我理解正确,那么您正在寻找此查询
select QuizID, Title, Description, from quiz
INNER JOIN userquiz ON quiz.QuizID= userquiz.QuizID
where quiz.issent = 1