首先我要處理4個表格。MySQL SELECT DISTINCT ORDER BY問題
我有一個類表是一個1->用部分表也具有1->用教訓N的關係表N的關係。
所以把它放在角度探討:
- 類
- 第
- 教訓
- 第
最後一個表是一個activityLog,當學生訪問,這是使用以下記錄的啓示是:
ActivityLog行 - >的actorId(用戶ID),的classID,sectionID,lessonID
我想抽出學生去過的最後5個獨特的課程。我嘗試使用DISTINCT和GROUP BY都沒有成功。
每次都會返回相同的記錄,而不是他們訪問過的最新的類。
使用GROUP BY
SELECT activityLog.actorID, activityLog.activityDate,
strClasses.classID, strClasses.className,
strSections.sectionID, strSections.sectionName,
strLessons.lessonID, strLessons.lessonName
FROM activityLog
LEFT JOIN strClasses ON strClasses.classID = activityLog.classID
LEFT JOIN strSections ON strSections.sectionID = activityLog.sectionID
LEFT JOIN strLessons ON strLessons.lessonID = activityLog.lessonID
WHERE activityLog.activityTypeID = 6 AND activityLog.actorID = 3
GROUP BY activityLog.lessonID
ORDER BY activityLog.activityDate DESC
LIMIT 5
使用DISTINCT
SELECT DISTINCT activityLog.actorID,
strClasses.classID, strClasses.className,
strSections.sectionID, strSections.sectionName,
strLessons.lessonID, strLessons.lessonName
FROM activityLog
LEFT JOIN strClasses ON strClasses.classID = activityLog.classID
LEFT JOIN strSections ON strSections.sectionID = activityLog.sectionID
LEFT JOIN strLessons ON strLessons.lessonID = activityLog.lessonID
WHERE activityLog.activityTypeID = 6 AND activityLog.actorID = 3
ORDER BY activityLog.activityDate DESC
LIMIT 5
爲什麼不顯示最新記錄我想不通。通過像下面 集團
您是否有示例輸入和輸出數據? – MatBailie