Problème avec la fonction FIRST

Résolu/Fermé
Pico51 Messages postés 716 Date d'inscription mercredi 27 décembre 2006 Statut Membre Dernière intervention 16 juillet 2019 - 5 nov. 2009 à 18:00
Pico51 Messages postés 716 Date d'inscription mercredi 27 décembre 2006 Statut Membre Dernière intervention 16 juillet 2019 - 6 nov. 2009 à 09:28
Bonjour,

J'ai un problème en utilisant la fonction FIRST et je ne vois pas du tout comment faire.
J'aimerais exécuter cette requête :
SELECT MIN(collection_id), FIRST(usr.*)
FROM usr
RIGHT JOIN collection
USING (user_no)
GROUP BY user_no


Si vous n'avez pas compris, j'aimerais afficher la première valeur de tous les champs de la table usr. Je peux contourner le problème et écrivant un à un les champs de la table mais cela est trop long.
Si j'enlève le FIRST, il y a une erreur à cause du GROUP BY qui ne peut pas grouper des champs qui n'utilisent aucune fonction d'agrégat (comme c'est le cas pour tous les autres champs de la table usr).

Je vous remercie de votre aide.
A voir également:

1 réponse

Pico51 Messages postés 716 Date d'inscription mercredi 27 décembre 2006 Statut Membre Dernière intervention 16 juillet 2019 69
6 nov. 2009 à 09:28
Pour ceux que cela intéresse, voici la réponse que j'ai trouvé : j'ai fait une sélection de la table usr qui vérifie si l'identifiant fait partie de la sous requête.
Je pense qu'une requête vaut mieux qu'un long discours :
SELECT usr.*
FROM usr
WHERE user_no IN
(
   SELECT usr.user_no
   FROM usr
   RIGHT JOIN collection
   USING (user_no)
   GROUP BY usr.user_no
)
;


J'espère que cela pourra venir en aide à d'autres.
0