学生のテスト結果をリストした表があります。各行には学生 ID が含まれ、列があり、各列は個々のテストのスコアを表します。ここで、各テストのスコアに対応する学生 ID の個別の行を表示できるようにするクエリを作成する必要があります。最善のアプローチを求めて Stack Overflow を検索しましたが、効率的と思われるアプローチは見つかりませんでした。 1 人の生徒 (1000002) のために以下のコードを書きましたが、達成しようとしていることに対して複雑すぎるようで、テストの 3 点に対してのみ機能するため、16 点すべてを取得するにはさらにコードを追加する必要があります。単一のクエリでこれを行う簡単な方法はありますか (推奨)、それとも行を抽出し、ループを使用して各要素から配列を構築する必要がありますか (2 番目に推奨)。
SELECT スコア_uid 、スコア1 から 評価スコア WHERE fk_assigned_uid = '1000002' すべてを結合する 選択する スコア_uid 、スコア2 から 評価スコア WHERE fk_assigned_uid = '1000002' すべてを結合する 選択する スコア_uid 、スコア3 から 評価スコア WHERE fk_assigned_uid = '1000002';
理想的には、次のような構造にする必要があります:
######学生######
######名前#######id
テスト
#id
######学生証#######id
######結果######
リーリー