0

だから私は簡単なクイズ スクリプトを書いています: ユーザーは質問のリストを取得し、2 つの可能な回答があります。私は2つのテーブルを持っています:1)ユーザーIDと質問IDを含む

user | question_id

2) 質問データベース、回答、各回答の投票数、および質問が受け入れられたかどうかを含む (公開リストで表示可能)

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

SQLステートメントに問題があります-今これを書きました(ユーザーIDは定数atmです):(ユーザーはまだ回答されていない質問のみを取得する必要があります)

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!

4

1 に答える 1

0

q.accept = 1 の代わりに q.accept = 0 (accept = 1 (回答済み) および accept = 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))
于 2012-05-13T17:10:05.730 に答える