Selectionner les dernieres entrée celon leur catégorie

Signaler
Messages postés
29
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
11 mai 2006
-
Messages postés
29
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
11 mai 2006
-
Salut à tous, voilà mon probleme.
je stock dans ma base de donnée des infos sur les vidéo hebergée par mon site. Ces vidéos sont répartie en plusieur catégories ex : sport, info, musique...

j'aimerai trouver "1" requete qui me sortirait la derniere vidéo mise en ligne pour chaque catégorie.

les champs de ma base sont les suivants :
videoid "clé primaire"
catid
nom
ext
....

Merci d'avance pour votre aide.
@+
JB

5 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

SELECT
vid.nom,
vid.videoid
FROM
videos vid,
categories cat
WHERE
(cat.catid = $id) AND
(vid.catid = cat.catid)
ORDER BY
vid.videoid DESC
LIMIT 1
Messages postés
29
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
11 mai 2006

avec ça je recupere toutes les vidéos triées par catégorie et non la derniere de chaque catégorie!!!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Non là tu ne récupères qu'une video, la dernière, pour 1 catégorie donnée.
Ah, pour chaque catégorie...j'avais mal lu.

SELECT V.VID_ID, C.CAT_ID
FROM VID V, CAT C
WHERE (
C.CAT_ID
IN (

SELECT CAT_ID
FROM CAT
)
)
AND (
V.CAT_ID = C.CAT_ID
)
GROUP BY C.CAT_ID
ORDER BY V.VID_ID DESC
Messages postés
29
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
11 mai 2006

c'est toujours pas ça lol
je pense qu'il faudrait utiliser un MAX dans la requete.
mais je n'y arrive pas correctement!!
merci encore
Messages postés
29
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
11 mai 2006

C'est bon j'ai trouvé!!!!
si cela peut servir à quelqu'un d'autre voici la requete
SELECT * FROM video
WHERE video.idvid
IN
(SELECT MAX(video.idvid)
FROM video
WHERE video.idcat
IN (1,2,3,4,5,6)
GROUP BY video.idcat
ORDER BY video.idvid DESC )