シナリオは、学生テーブルがあり、クラスが 4 つあり、部屋番号しか知らない場合です。また、テーブルが 2 つあり、1 つは教師の名前と部屋番号、もう 1 つは教師の名前と担当科目が記載されています。ここで、生徒は数学の先生が誰であるかを知りたいと考えています。生徒の名前と数学の先生の名前だけが必要です。
これは、私が取り組んでいるバウチャー プロジェクトの架空のシナリオです。多くの状況で動作するようになりましたが、非常に遅いです。新しい列を作成するためのケース条件では何も速度が低下することはありません。学生テーブルを教師テーブルに関連付ける列がわからないため、同じケース条件を使用してテーブルを結合したままにしました。左結合のケース条件が問題を引き起こしているようですが、遅延なく同じ結果を得るために使用できる他の方法はありますか?
あなたがこれほど多くの問題を抱えているのは、あなたのアーキテクチャがあまり良くないからだと思います。具体的には、各コース/部屋番号の列がある学生テーブルのスキーマです。
私は最初にサブクエリを使用してこの問題を修正しました。例:
このように「ピボットを解除」すると、きれいな
Student Name | Period | Room
スキーマが得られ、この問題の解決がはるかに簡単になります。