2011-12-04 70 views
3

我正在嘗試進行測驗,以顯示相同用戶以前未回答的問題。 因此,會話是在用戶開始測驗時創建的。MySQL - 顯示未回答的問題

這裏的情況是:

  • 有一臺 「問題」
    • 此表中包含的所有問題。有一個獨特的領域QuestionId。
    • 的問題,總是有從1到5
  • 有一個表「答案」
    • 此表包含用戶給出所有答案一個類別編號。會話ID存儲在SessionId中,回答的問題ID存儲在QuestionId中。

我現在正在尋找一個查詢

  • 獲取從問題
    • 問題在哪裏類別ID = X
    • 尚未之前(所以QuestionId回答不應該在答案中列出相同的SessionId)

我自己的嘗試和一些Google搜索沒有幫助。希望這裏有人能幫助我。

在此先感謝!

回答

2

試試這個:

select 
    * 
from 
    question 
where 
    categoryid = x and 
    not exists (
     select 
      '1' 
     from 
      answers 
     where 
      sessionid = y and 
      answers.questionid = question.questionid 
    ) 

它會列出沒有來自用戶的回答所有的問題。如果這是你需要的,你可以在結果上加上一個「限制」來取回只有一行。