一、表名和字段
–1. 學生表 student (s_id,s_name,s_birth,s_sex) –學生編號,學生姓名,出生年月,學生性別
–2. 課程表 course (c_id,c_name,t_id) –課程編號,課程名稱,教師編號
–3. 教師表 teacher (t_id,t_name) –教師編號,教師姓名
–4. 成績表 score (s_id,c_id,s_score) –學生編號,課程編號,分數
具體詳情看
二、Mysql 題目
按各科成績進行排序,並顯示排名(Score 重複時保留名次空缺)
三、Mysql 分析
1、用到的表為 score
2、group by x,y
GROUP BY X, Y意思是將所有具有相同 X 字段值和 Y 字段值的記錄放到一個分組裡。
3、left join
score a left join score b on a.c_id = b.c_id and a.s_score < b.s_score
是循環 a 表中的全部行,與 b 表第一行比,顯示出滿足條件的行,行的列包括 b 第一行內容
循環 a 表中的全部行,與 b 表中第二行比,顯示出滿足條件的行,行的列包括 b 第二行內容
……
選好 a 表中的全部行,與 b 表中最後一行比.
這裡主要是為了找出大於 a 同科成績的人,統計後 + 1 ,即為a 的科目排名
四、Mysql 方案
1、Mysql 方案
2、Mysql 結果:
>>>
閱讀更多 Python大星 的文章