私はJavaScriptプログラムを持っています。このプログラムでは、「話そう」などと入力すると、質問テーブルからユーザーに質問をする質問関数に移動します。それは質問されていない質問をするだけです。
3つのテーブルを設定しました。
(questions) (people) (questionasked)
QID Question PID Person QID PID Asked Answer
1 What is life? 1 Lindsay 1 1 N ''.
2 Do you know Kate J? 2 Kate 2 1 Y 'Yes, Kate is cool'.
質問されたテーブルには、QIDとPIDの主キーが組み合わされているため、同じ質問が2回行われることはありません。
質問をするための良い方法は何ですか。質問の表には、20以上の質問が含まれている可能性があります。クエリを作成するphpファイルに与えられる変数は、名前だけです:name(ユーザーの名前)。例えば。
$query1 = "SELECT q.Question
FROM questions q inner join questionsasked qa
ON q.QID = qa.QID
WHERE qa.Asked='N'";
ここに別のAND句を追加して確認できますか
questionsasked inner join people on PID = people.PID AND people.Person = $name ?
上記のクエリは何も返しません..SQLをさらに練習する必要があります..結果の最初の質問を返したいと思います。
OK私はこれに対する答えを主にvidyadharの答えに得、またJWからの「ORqa.Asked IS NULL」を組み合わせました。これは、実際に質問されない限り「questionsasked」テーブルに記入できない可能性があるため、良い点でした。質問の表を用意しておくのが最善の場合もあります。次に、質問に回答したら、質問の表に記入します。
私が使用している答えは次のとおりです。
$query1 = "SELECT q.Question
FROM questions q
INNER JOIN questionsasked qa
ON q.QID = qa.QID
INNER JOIN peopleiknow p
ON qa.PID = p.PID
WHERE qa.Asked='N' OR qa.Asked IS NULL
AND p.Person = '$name'";
それ以上の微調整は大歓迎です。
実際、私はまだこれに問題があったので、テーブルを変更し、質問して、この質問のphpコードを示しました:修正が必要なPHPファイルのSQLクエリ