2012-05-13 4 views
0

私は単純なクイズスクリプトを書いています。ユーザは質問のリストを取得し、2つの可能な回答があります。 iは、2つのテーブルを持っているユーザーIDと質問IDを含む 1)の答えとデータベースを含む2つのテーブルからのSQL文のフィルタリング

user | question_id 

2)、各回答のためとqiven質問が受け入れられた場合(公共リストで見ることができ投票数)

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

私は、SQL文に問題がある - 今私は(ユーザーIDは一定気圧である)、これを書いた: (ユーザーがまだ回答されてhaventは唯一のこれらの質問を取得する必要があります)

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

この結果に0行がある場合は、すべての可能な質問を検索するif文を入れます。 いつかは間違っていた:私はすべての質問に答えると、最初のステートメントは0行を取得し、次のステートメントがトリガされます+どのように最初のテーブルが空で、

誰でもヒントを与えたり、これを解決する方法を教えていただけますか?事前にt​​hx!

答えて

0

私はあなたがこれを使用することによって、非存在を介して取得することができます(= 1を受け入れる(答え)と= 0(未回答)受け入れる)

を、それが= 0 q.acceptしなければならない代わりにq.accept = 1の仮定していますクエリ

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

関連する問題