Requête mysql avec GROUP BY

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par julien__, 3 Septembre 2010.

  1. julien__
    julien__ WRInaute occasionnel
    Inscrit:
    28 Décembre 2006
    Messages:
    268
    J'aime reçus:
    0
    Bonsoir, je voudrais faire une requête sql qui me renvoie les 10 premiers enregistrements de chaque catégorie

    select * from ma_table GROUP BY genre,sousgenre ORDER BY id DESC

    avec ça, j'ai le premier enregistrement de chaque sousgenre, mais je voudrais avoir les 10 premiers... ?
     
  2. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Tu peux tenter quelque chose comme:

    Code:
    select * from table t1 where id in (select id from table t2 where (t2.genre,t2.sousgenre)=(t1.genre,t1.sousgenre) order by id desc limit 10) order by genre,sousgenre,id desc
    Mais je ne garantis pas que ça marche (et j'ai la flemme de tester, là).

    Jacques.
     
  3. julien__
    julien__ WRInaute occasionnel
    Inscrit:
    28 Décembre 2006
    Messages:
    268
    J'aime reçus:
    0
    Oups, j'ai qu'une seule table, dans ton exemple, il y a deux tables, t1 et t2?
     
  4. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Non, ce sont deux références à la même table "table", t1 et t2 ne sont que des alias.

    Jacques.
     
  5. julien__
    julien__ WRInaute occasionnel
    Inscrit:
    28 Décembre 2006
    Messages:
    268
    J'aime reçus:
    0
    ok j'ai déjà vu ça une fois, mais j'ai des prob pour la syntaxe... les alias sont une notion que j'ignore, je sais que c'est pas bien d'avoir des besoins qui dépassent ses capacités... :) aide moi à progresser...

    SELECT * FROM ma_table GROUP BY genre,scat

    ma_table : c'est la table
    genre : le genre
    scat : le sousgenre

    please!!! il me manque plus que ça pour mettre la nouvelle version de mon site ne ligne...
     
  6. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Ben "table" c'est ta table. t1 et t2 sont des alias, pas besoin de les modifier.

    Quand tu fais une requête SQL, les tables peuvent avoir un alias, ce qui est particulièrement utile si tu fais référence plusieurs fois à la même table.

    select * from table where table.toto=truc

    est la même chose que:

    select * from table aliasdematable where aliasdematable.toto=truc

    Avec plusieurs fois la même table:

    select * from table t1,table t2 where t1.champquelconque=t2.autrechampquelconque

    Bref, l'alias par défaut d'une table est le nom de la table, mais tu peux choisir n'impore quel autre nom.

    Il est temps d'aller lire la doc (version polie de RTFM).

    Jacques.
     
  7. julien__
    julien__ WRInaute occasionnel
    Inscrit:
    28 Décembre 2006
    Messages:
    268
    J'aime reçus:
    0
    Je fais ça

    select * from ma_table t1 where id in (select id from ma_table t2 where (t2.genre,t2.scat)=(t1.genre,t1.scat) order by id desc limit 10) order by genre,scat,id desc

    et j'ai ça

    #1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

    désolé de te tenir la jambe...
     
  8. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Les limites de mysql... (j'ai l'habitude de postgresql). Et ça, ça marche?

    select * from ma_table t1 where id in (select id from (select id from ma_table t2 where (t2.genre,t2.scat)=(t1.genre,t1.scat) order by id desc limit 10) x) order by genre,scat,id desc

    Jacques.
     
  9. julien__
    julien__ WRInaute occasionnel
    Inscrit:
    28 Décembre 2006
    Messages:
    268
    J'aime reçus:
    0
    #1054 - Unknown column 't1.genre' in 'where clause'

    ça s'annonce pas bien...
     
Chargement...
Similar Threads - Requête mysql GROUP Forum Date
encodage texte sur requete mysql Demandes d'avis et de conseils sur vos sites 21 Octobre 2020
Requête MySql imbriquée Développement d'un site Web ou d'une appli mobile 8 Octobre 2020
Requête Mysql avec des string Développement d'un site Web ou d'une appli mobile 6 Février 2018
Requete mysql Développement d'un site Web ou d'une appli mobile 30 Mai 2017
Problème requête mysql Développement d'un site Web ou d'une appli mobile 1 Mars 2017
[php/mysql] Eviter de faire 20 requêtes pour un affichage Développement d'un site Web ou d'une appli mobile 19 Janvier 2016
requete Mysql et classement des résultats Administration d'un site Web 1 Novembre 2015
Mysql requête imbriquée Développement d'un site Web ou d'une appli mobile 1 Octobre 2015
[MySQL] Requête SELECT et INSERT entre 3 tables liées+Aide Développement d'un site Web ou d'une appli mobile 30 Avril 2014
Question pour une requête MYSQL Développement d'un site Web ou d'une appli mobile 29 Mai 2013
Réunir 2 requêtes MySql Développement d'un site Web ou d'une appli mobile 22 Mai 2013
MySQL Help requête² Développement d'un site Web ou d'une appli mobile 12 Avril 2013
MySQL help requete Développement d'un site Web ou d'une appli mobile 6 Mars 2013
Une requête mysql count Développement d'un site Web ou d'une appli mobile 25 Juillet 2012
Requête mysql Développement d'un site Web ou d'une appli mobile 11 Mai 2012
[MySQL] sélectionner la dernière note pour chaque élève en une seule requète ? Développement d'un site Web ou d'une appli mobile 12 Avril 2012
[Mysql] Requête PDO avec variable php Développement d'un site Web ou d'une appli mobile 16 Février 2012
[Mysql] Requête PDO aléatoire Développement d'un site Web ou d'une appli mobile 7 Février 2012
Temps d'éxécution requête mysql vraiment contre intuitif Développement d'un site Web ou d'une appli mobile 9 Novembre 2011
Requête MySQL besoin d'aide Développement d'un site Web ou d'une appli mobile 15 Septembre 2011