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 に答える