テーブル question、topic、および question_has_topic (多対多の関係) があります。私のアプリケーションでは、管理者はトピックごとにグループ化された質問の内訳を見て、テストを作成するためにシステムにランダムに選択させたい質問をそれぞれからいくつ選択します。
これは彼らが見る種類のテーブルです:
+-------------------------------------+---------------------+--- ----------+ | | トピック | 利用可能な質問 | 選択: | +-------------------------------------+---------------------+--- ----------+ | | 健康、安全、全般 | 13 | | | | | 健康 | 3 | | | | | 安全性 | 7 | | | | | 一般 | 1 | | | +-------------------------------------+---------------------+--- ----------+
カウントは、トピックの特定のグループに固有です。とにかく、彼らが選択したら、与えられたトピックのグループに対応する質問を選択する SQL ステートメントが必要です。つまり、健康、安全、一般に関する 3 つの質問が必要になる場合があります。
私はオンラインでいくつかの調査を行っていましたが、私がやろうとしていることは関係代数の除算として知られていると思います。ここでは、トピック ID の任意のグループ化の試みを示します。
question_has_topic から questionid を選択 存在しない場所 ( question_has_topic から questionid を選択 topicid が (8,9,10) に含まれていない場合)
結果は空ですが、データベースにはこれらすべてのトピック ID を持つ 2 つの質問があり、これが機能していないことがわかります。このリンクの例に従っていました