[MySQL 4.0] Question sur GROUP BY
bonjour à tous et à toute,
j'ai 2 tables comme ceci :
TABLE "SONG" : id (clé)
TABLE "SONG_FILE" : id (clé), song_id (clé étrangere ID de SONG) track_type (int)
un SONG contient 0 ou plusieurs SONG_FILE
relation relativement simple, comme vous pouvez le voir.
ce que je souhait effectué comme requête.
je veux parcourir tout les SONG_FILE groupé par SONG, et extraire ceux, dont le track_type est égal au max(track_type) du group SONG
alors en fait j'avais procédé ainsi :
Code:
1 2 3 4 5 6 7
| SELECT sf.id, s.id, track_type, max(track_type) as max_track
FROM song_file AS sf
LEFT JOIN song AS s ON sf.song_id = s.id
WHERE sf.seller_id =1
AND TYPE =1
GROUP BY song_id
HAVING track_type = max_track |
il compare pas chaque SONG_FILE par rapport au max(track_type) du group SONG en procédant comme ceci :/
si vous avez éventuellement des solutions.
petit exemple de ce que ca doit donner :
avant la requête :
Code:
1 2 3 4 5 6
| ID SONG_ID TRACK_TYPE
145 5400 3
146 5400 1
147 5400 1
178 3600 2
177 3600 1 |
apres la requête :
Code:
1 2 3
| ID SONG_ID TRACK_TYPE MAX_TRACK
145 5400 3 3
178 3600 2 2 |
Merci pour votre aide les gars