2012-05-13 101 views
0

所以我正在寫一個簡單的問答腳本:用戶獲取問題列表並有2個可能的答案。 我有2個表: 1)包含用戶ID和問題ID從兩個表中篩選SQL語句

user | question_id 

2)含有題庫,與答案,投票的每個答案,如果qiven問題被接受(可以公示名單上看到的數)

id | question | answer1 | answer2 | a1count | a2count | accept 

我有一個問題,我的sql語句 - 現在我寫這個(用戶ID是恆定的大氣壓): (用戶應該得到的只是那些還沒有得到答覆尚未題)

SELECT * 
FROM questions as q, answers as a 
WHERE a.user = 2 
    AND a.question_id <> q.id 
    AND q.accept = 1 

如果這樣的結果有0行我放,如果語句檢索所有可能的問題。 不幸的是,在某些時候它出錯了:當我回答所有問題時,第一條語句獲得0行,下一條語句被觸發+第一個表爲空並且沒有任何可比較的時候如何檢查顯示未回答的問題?

mayby任何人都可以給予提示或幫助如何解決這個問題? thx提前!

回答

0

我假設的,而不是q.accept = 1應該q.accept = 0(接受= 1(回答),並接受= 0(解答))

您可以使用此通過非存在得到查詢

select * from questions where accept = 0 and NOT EXISTS (Select id from answers where user_id = 2 and id IN (select question_id from questions)) 
+0

謝謝幫了很多! – mjanisz1

+0

歡迎您:),很高興能有所幫助 – mprabhat