0

我有以下数据库设计:

Employee Table: Username, Name
Quiz Table: QuizID, Title, IsSent, Description
UserQuiz Table: UserQuizID, QuizID, Score, Username

(IsSent 是一个标志(位类型),指示测验是否已发送给所有员工)

我现在需要编写一个查询,显示已发送给员工但他没有参与的测验的标题和描述。因此,当员工进入系统中的个人资料时,他会看到他参与的测验(如果有的话)。怎么做?

我写了一个通用查询,显示了所有员工都没有参与的测验。它应该特定于给定/指定的员工。那么如何修改呢?

询问:

SELECT     Title, Description
FROM         dbo.Quiz
WHERE     (NOT EXISTS
                          (SELECT     QuizID
                            FROM          dbo.UserQuiz
                            WHERE      (dbo.Quiz.QuizID = QuizID)))
4

1 回答 1

1

试试这种方式: -

SELECT Q.Title, Q.Description 
FROM Quiz Q
WHERE     
    (NOT EXISTS                           
        (SELECT UQ.QuizID 
         FROM UserQuiz UQ, Employee E
         WHERE Q.QuizID = UQ.QuizID and E.Username = UQ.Username)
     )
于 2012-06-25T07:43:12.270 回答