begin process at 2010 02 10 03:46:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

MySQL

 > 

Requêtes

 > 

Group By ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Group By ?

samedi 29 septembre 2007 à 17:36:24 | Group By ?

mondrone

Membre Club
Bonjour, comme précisé par la rubrique choisie, ma question est à propos du fonctionnement de MySQL disons.

Voila :

en gros et pour faire simple, j'ai deux tables, une news et une texte.
les deux ayant des clés primaires, la table texte à une clé étrangère/secondaire/je ne sais plus comment on l'appelle (désolé je n'ai pas revu de théorie depuis 1 an).

                                     | textes |
| news |                          |numero|
|numero|(1,1)<===(1,n) |numero_s|
|...|                                 |....|

(pas facile à dessiner)(si jamais j'ai inversé les cardinalités, désolé pareil c'est loin)
En fait, la table news (les news d'un site en fait) ne contient pas ses textes, c'est textes qui les contient.
en gros donc, il peut y avoir plusieurs textes sur une seule news (si jamais la news a été modifiée), et donc j'aimerais récupérer uniquement la dernière en date.
Javais pensé à faire un limit 1 mais ca agis sur la requete complète et non sur une seule table. De même, j'ai pensé au group by, mais autant je sais que group by va me renvoyer un seul texte par news (group by textes bien sur), mais lequel ? Je n'ai rien trouvé à ce sujet. Le premier qui apparait dans le classement ? Le dernier ? aléatoire ?

Existe-il une instruction qui pourrait spécialement me servir dans ce genre de cas (en dehors de celles-citées) ?


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!

samedi 29 septembre 2007 à 17:47:32 | Re : Group By ?

mondrone

Membre Club
J'ai oublié de préciser que je peux sans soucie déterminer quel texte choisir grace au champ date !


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!

samedi 29 septembre 2007 à 18:33:41 | Re : Group By ?

nhervagault

Administrateur CodeS-SourceS
Salut

Si tu as un champ date tu peux faire une requete du type

select  * from Texte
order by [date] desc
limit 1

Sinon tu peux surement y arrive avec un group by

Bon courage
samedi 29 septembre 2007 à 19:19:24 | Re : Group By ?

mondrone

Membre Club
En fait, le limit 1 marcherait si j'avais seulement une news a prendre, le but étant de récupérer toutes les news d'un coup ! (donc plusieurs news, mais chacune un seul texte, celui dont la date est la plus récente). C'est pour ca que j'ai pensé au group by, mais je ne trouve pas de doc assez précise dessus. Est-ce que j'ai un risque que l'enregistrement qui sort ne soit pas celui qui se trouve en haut de liste ?


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!

lundi 8 octobre 2007 à 12:53:49 | Re : Group By ?

viry0ne

Lu'

Moi je verrais bien un ORDER couplé à un GROUP BY...
Tu order by date desc, pour avoir la plus récente en premier, puis tu group by, qui lui te renvoie la ligne 'la plus en haut'.
Apres tu execute plusieurs fois ta requete en t'assurant que tu obtient bien le résultat attendu, et roulez jeunesse.

lundi 8 octobre 2007 à 15:23:11 | Re : Group By ?

mondrone

Membre Club
Réponse acceptée !
En fin de compte c'est exactement ce que j'avais fait au départ, mais sans pouvoir vérifier si la ligne renvoyée est bien "la plus haute" ?

Par contre on m'a donné une autre réponse :

SELECT n.numero, t1.texte, t1.date
FROM news n, textes t1
WHERE n.numero=t1.numero_s
AND t1.date= (SELECT MAX(t2.date) FROM textes t2 WHERE t2.numero_s=n.numero)


A vrai dire je n'y avait pas pensé ! Mais ca semble très bien marché (d'ailleurs pourquoi cela ne marcherait-il pas... ?)

Enfin merci à vous pour s'êtrepenché sur mon problème !


  Qui ne tente rien...
  Ne risque pas d'avoir grand chose !!!



Cette discussion est classée dans : texte, news, group, by, textes


Répondre à ce message

Sujets en rapport avec ce message

GROUP BY ET tri [ par fcdconnect ] Bonjour,j'aimerai savoir comment trier les resultat groupé dans une requete mysql de ce type : champ de la table :id | num | datetime |etc1 | 0552| 2 group by ou non? [ par Rjoe ] bonjour je simplifie mon problemequi est le suivant:je voudrais afficher an executant ma requeteselect nom,prenom,jobfrom ENTREPRISEgroup by jobest ce Double imbrication de requetes avec "GROUP BY" [ par J_G ] Bonjour, Soit les tables Hotel(idChambre, ...) Reservation(idResa, IdChambre, NbPersonne, IdDate) Annulation(IdAnnul, NbAnnule) Je souhaiterai conn group by [ par gabs77 ] slt, j'ai une base de donnée avec une table donner qui porte 2 clé primaires et une propriété :DONNERnumcascodesectionannéeje veu effectuer une requet SQL problème avec GROUP BY [ par nathapla ] Bonjour à tous,J'ai un petit problème avec GROUP BY.Je vous explique, j'ai une table 'depense' où il y a comme champs : id_uti, date, titre, prix.Je v probleme dans une requette [ par saragi ] j'ai un probleme dans une requette$req="SELECT SUM(nbre) as total,date,offre_id         FROM vendre         GROUP BY(offre_id,date)";lorsque je fais g Problème Group BY [ par ti_flo ] Bonjour tout le monde,Je suis actuellement en stage et je dois manipuler des requêtes SQL sur une table Oracle.Mais je rencontre quelques difficultées Trouver la moyenne minimum dans un Group By [ par petitemainate ] Bonjour à tous,Voici l'intitulé de la question ^_^ "Afficher le job ayant le salaire le plus bas"J'ai donc une requête de ce genreSELECT Job, avg(Sala Group by d'un Group by ??? [ par vincentstryckmans ] Bonjour,Ma requête est la suivante :SELECT   SUM((IDENTIF_OFFICIEL.MINHKV) * RESP_OFFICIEL.POURCENT / 100) AS SUM_M<f Problème group by sur un champs de type 'text' [ par MobyWan ] Bonjour,J'ai une procédure stockée qui me permet de faire une view d'une table suite a une recherche FullText.Le problème est que j'ai besoin d'utilis


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,218 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales