如何显示用户未参与的测验列表?

时间:2012-07-28 08:39:48

标签: c# asp.net sql-server

我正在开发一个基于网络的培训管理系统,为员工提供每周简短的测验。在网站的配置文件部分中,员工应该能够看到他没有参与的测验列表。我可以让系统显示它们但不是在改进系统后,它没有显示。

首先,我有以下数据库设计:

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)))

2 个答案:

答案 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