1

基本的に、特定のクエリ結果を外部キーのエントリの列で並べ替えたいと考えています。ここに私が持っているテーブルがあります:

class
------
classId
profId    //Points to a profId from professor table
courseId  //Points to a specific courseId from course table
semId     //Points to a specific semId from semester table

professor
---------
profId
first   //first name
last    //last name

course
------
courseId
department //The `CMSC` in CMSC101
number    //The `101` in CMSC101
title    

semester
--------
semId
season  //example: Spring, Summer, Fall
year

それらを階層的に並べ替えたいだけでなく、クラス列の列の外部キーによっても並べたいと思います。したがって、SELECTすべてのエントリを次のclass順序で並べ替えます。

  1. コース→学科
  2. コース→番号
  3. コース→セクション
  4. 教授 -> 最後
  5. 教授→最初
  6. 学期 -> 年
  7. 学期 -> シーズン
4

2 に答える 2

2

ああ、それは質問の以前の投稿よりも理にかなっています。最初にすべてのテーブルを結合する必要があり、次に並べ替えることができます。

SELECT
  Course.Department,
  Course.Number,
  Course.Section,
  Professor.Last,
  Professor.First,
  Semester.Year,
  Semester.Season
FROM Class
INNER JOIN Course ON Class.CourseID = Course.CourseID
INNER JOIN Professor ON Class.ProfID = Professor.ProfID
INNER JOIN Semester ON Class.SemID = Semester.SemID
ORDER BY
  Course.Department,
  Course.Number,
  Course.Section,
  Professor.Last,
  Professor.First,
  Semester.Year,
  Semester.Season

並べ替えるために列がリストにある必要はありません、ほとんどの場合、リストに列SELECTを含めることは理にかなっています。

于 2013-04-07T01:11:16.780 に答える