台灣最大程式設計社群網站
線上人數
812
 
會員總數:245973
討論主題:189551
歡迎您免費加入會員
討論區列表 >> MySQL >> mysql語法的應用
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
mysql語法的應用
價值 : 40 QP  點閱數:887 回應數:2
樓主

雲林仔
初學者
961 1494
8411 1212
發送站內信

請教大家
透過下列的語法,我可以抓取出課程中學員完成測驗之成績與日期,但是因為某些學員有補考或者重覆考2-3次,是否可以在語法上直接就抓取出這些學員最高分的那一次呢?謝謝
select CONCAT(a.firstname,' (測驗日期)'),CONCAT(ROUND(b.sumgrades,0) ,' (', date(from_unixtime(b.timefinish)),')'),c.name from mdl_user a ,mdl_quiz_attempts b,mdl_quiz c where a.id=b.userid and c.id=b.quiz and b.sumgrades is not null and c.name='math測驗' order by a.firstname




搜尋相關Tags的文章: [ singal ] ,
本篇文章發表於2016-10-04 21:14
1樓
回應

彩虹
檢舉此回應
你可以提供一下你的資料表結構以及簡易資料嗎?
mdl_user、mdl_quiz_attempts 、mdl_quiz 這三張資料表

另外你傳的這張圖片解析度太低了...

因為不知道你的資料表結構
我只能先提供方向給你,使用max(分數)取得最高分數,並搭配group by

最後我覺得你原本的寫法蠻特殊的,不知道是你把它複雜化了還是?
本篇文章回覆於2016-10-05 00:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
concat不是給你這樣用的@@"我的媽呀!!
嫌sql的效能太快了是不是。

一般是單純將資料取出來,再用程式來表現就好。

不要用mysql來寫程式好嘛?

再來針對你的問題。
就如#1所說的,不清楚你的資料表節構。
一般我會用子查尋的處理方式。但不了解你的資料庫節構的情況下。沒辦法給你有效的sql命令

本篇文章回覆於2016-10-05 14:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.