mysql 쿼리 절에 의해 그룹에 대한 도움이 필요합니다. MySQL : Group by Clause
메달 표
(이 모든 메달을 보유) :+-----------------------------------------------------------------------+
| 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와 동일한 메달을 선택하여 표시합니다.
하지만 제대로 작동하지만 최신 메달이 표시되지 않습니다. 그것은 3
추가 정보 4.를 표시해야한다 (1), (2) : 나는 각 메달의 종류에서 하나 개의 메달을 표시 할 그것은 단지 다음 메달 아이디의 표시입니다. 예를 들어, 사용자가 두 개의 "포스트 메달"을 얻은 경우 획득 한 다른 메달과 함께 획득 한 최근의 메달 만 표시됩니다.
도움을 주시면 감사하겠습니다.
왜 'GROUP BY'를 사용하고 있습니까? – Dalen
@Dalen 어떻게 든 메달 분류를 그룹화해야하므로 각 유형에 대해 하나의 메달 만 표시합니다. – Spencer
medal_id 1 (유형 1) 및 medal_id 2 (유형 2)를 표시하는 경우. 그런 다음 유형 당 1 개의 메달 만 표시합니다. 그래서 효과가 있습니까? –