我有以下数据库设计:
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)))
答案 0 :(得分: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)
)