Bonjour,
C’est assez simpliste comme titre , je l’avoue mais cela resume bien mon probleme. J’ai une table en MariaDB qui contient des listes de documents, un document est structuré comme ceci:
- ID
- Nom
- User_ID
- Category_ID
- Groups
Les documents sont mis à jour regulierement et sont recuperé par le group plus grand c’est à dire qu’un document peut etre mis à jour aujourd’hui et dispose du group = 1, et demain tous les documents sont mis à jour et dispose tous d’un group = 2 . Ce group est different pour chaque utilisateur (user_id) .
Mon probleme est qu’il faut que je recupere (pour chaque utilisateur, exemple User_ID = 10) des documents qui ont les memes nom , du meme group mais repeté dans plusieurs catégories differentes au moins 3 fois.
J’ai fait :
select d.* from docs as d where user_id = 10 and groups = (select max(groups) from docs where user_id = d.user_id and category_id = d.category_id) group by d.nom, d.groups having count(*) > 2
Le probleme avec ca est qu’il y a des documents qui ont les meme groups et meme category_ID et meme nom qui reviennent 2 fois alors qu’il faut les exclure aussi .
Donc je cherche un moyen via PHP de comparer la collection retournée par la requete et d’exclure ces types de resultats ou de l’exclure via SQL directement.
Avez-vous une idée ?
Merci d’avance