我需要一些幫助,通過mysql查詢子句的組。MySQL:集團條款
獎牌表(這適用所有獎牌):
+-----------------------------------------------------------------------+
| medal_id | medal_level | medal_name | medal_type | medal_icon |
|-----------------------------------------------------------------------|
| 1 | 1 | 1 post medal | 1 | icon_file.png |
| 2 | 2 | 1 thread medal | 2 | icon_file.png |
| 3 | 1 | 2 post medal | 1 | icon_file.png |
| 4 | 2 | 2 threads medal | 2 | icon_file.png |
+-----------------------------------------------------------------------+
用戶獎牌表(這個擁有哪些用戶已經贏得獎牌):
+--------------------------------+
|medal_id |user_id | earnedtime |
|--------------------------------|
| 1 | 1 | 1313548360 |
| 2 | 1 | 1313548365 |
| 3 | 1 | 1313548382 |
| 4 | 1 | 1313548410 |
+--------------------------------+
MySQL查詢:
SELECT m.*, u.*
FROM users_medals u
LEFT JOIN medals m ON (u.medal_id=m.medal_id)
WHERE u.user_id IN(1)
GROUP BY m.medal_type
ORDER BY u.earnedtime
這是打算做的是顯示獎牌用戶已經贏得(這是一個公告板系統的插件)。它選擇並顯示用戶獎牌ID等於所有獎牌的表中的獎牌ID的獎牌。
這很好,但是,它不顯示最新的獎章。這只是顯示以下獎牌的ID:1,2.應當顯示3和4
附加信息:我只是想顯示每個獎章類型勳章。例如,如果用戶獲得了兩張「獎章」,則只顯示最新的獎章以及其他獲得的獎章。
任何幫助將不勝感激。
你爲什麼使用GROUP BY? – Dalen
@Dalen我需要以某種方式組合medal_type,所以它只顯示每種類型的獎章。 – Spencer
如果它正在顯示medal_id 1(類型1)和medal_id 2(類型2)。然後它只顯示每種類型的1枚獎章。所以它工作? –