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 :
il compare pas chaque SONG_FILE par rapport au max(track_type) du group SONG en procédant comme ceci :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
si vous avez éventuellement des solutions.
petit exemple de ce que ca doit donner :
avant la requête :
apres la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci pour votre aide les gars
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ID SONG_ID TRACK_TYPE MAX_TRACK 145 5400 3 3 178 3600 2 2
Partager