複数のテーブルから得られる可能性のあるフィールド値に基づいて、MySQL で結果セットをソートする最良の方法は何ですか?
簡単にするために、DB に 4 つのテーブルがあるとします。プライマリ テーブルには多くのフィールドが含まれていますが、特に、別のテーブルの名前を持つ列と、そのテーブル内のレコードへの外部キーが含まれています。3 つの外部テーブルのそれぞれには、プライマリ テーブルで結果を並べ替える名前列が含まれています。
Example primary table:
+----+---------------+------------+-------------+
| id | foreign_table | foreign_id | more_fields |
+----+---------------+------------+-------------+
| 1 | students | 9182 | blah, blah |
| 2 | students | 1008 | blah, blah |
| 3 | parents | 3827 | blah, blah |
| 4 | teachers | 4523 | blah, blah |
| 5 | teachers | 1092 | blah, blah |
+----+---------------+------------+-------------+
Example foreign (students) table:
+-------+--------------+-------------+
| id | name | more_fields |
+-------+--------------+-------------+
| 9182 | Joe | blah, blah |
| 1008 | Sally | blah, blah |
+-------+--------------+-------------+
これは MySQL で可能ですか? それとも、PHP で結果をループして、ソートする配列を作成し、array_multisort() のようなものを使用する必要がありますか? 配列を使用する場合、結果をソートするためだけに何千もの行をループするのは効率的ですか?
どんな助けでも大歓迎です。