IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Dernier id et GROUP BY dans MySQL 3.23


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Dernier id et GROUP BY dans MySQL 3.23
    Bonjour, j'ai une table dans MySQL très simple avec la structure suivante :

    id INT autoincrement
    categorie TEXT
    modalite TEXT
    fichier TEXT

    Pour une catégorie donnée et une modalité donnée on a n fichiers.
    Je veux simplement récupérer le dernier fichier, sachant qu'il correspond à l'id le plus élevé.

    J'ai essayé ça "SELECT max(id),categorie, modalite,fichier_nom FROM env_icpe group by categorie,modalite order by categorie,modalite"
    mais c'est incohérent...

    J'ai l'impression qu'il faut faire un autojointure, mais je ne vois pas comment...
    Sachant que je suis en MySQL 3.23, donc pas de requête imbriquée...

    Merci de votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par otterley
    Je veux simplement récupérer LE dernier fichier, sachant qu'il correspond à l'id le plus élevé.
    Tu veux récupérer le dernier fichier, on est d'accord qu'il est unique?
    Et que son id est un entier et unique?

    Citation Envoyé par otterley
    J'ai essayé ça "SELECT max(id),categorie, modalite,fichier_nom FROM env_icpe group by categorie,modalite order by categorie,modalite"
    mais c'est incohérent...
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT max(id),categorie, modalite,fichier_nom FROM env_icpe
    suffit, l'order by et le group by non aucun intérêt ici puisque que tu attends une seule ligne en retour.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Non attention je veux récupérer chaque max(id) pour une paire catégorie/modalité donnée... !!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par otterley
    Non attention je veux récupérer chaque max(id) pour une paire catégorie/modalité donnée... !!
    Ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT e.categorie, e.modalite, e.fichier_nom
    FROM env_icpe e
    where e.id = select (max (e2.id) from env_icpe e2
                      where e2.categorie = e.categorie
                      and e2.modalite = e.modalite))
    group by e.categorie, e.modalite
    order by e.categorie, e.modalite
    Sans garantie, commence à faire tard pour moi...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par _Jnie_
    Ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT e.categorie, e.modalite, e.fichier_nom
    FROM env_icpe e
    where e.id = select (max (e2.id) from env_icpe e2
                      where e2.categorie = e.categorie
                      and e2.modalite = e.modalite))
    group by e.categorie, e.modalite
    order by e.categorie, e.modalite
    Sans garantie, commence à faire tard pour moi...
    Je ne peux pas faire de requête imbriquée car MySQL 3.23

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par otterley
    Je ne peux pas faire de requête imbriquée car MySQL 3.23
    Ah oui, j'avais pas fait attention. Je te renvoie vers la FAQ de MySQL Comment pallier l'absence de requêtes imbriquées dans les versions < 4.1 ?. Je sais pas si ça peu répondre à ta question, je l'ai pas lu ou peut être que tu l'as déjà vu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/03/2010, 18h12
  2. Recherche FULL Text existe que dans MySql ?
    Par seb.49 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/06/2004, 22h30
  3. foreign key dans mysql
    Par guillevin dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 08/04/2004, 15h07
  4. stockage d'images dans Mysql
    Par sessime dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/02/2004, 16h08
  5. Importer une db existante dans mysql
    Par Arbisis dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/02/2004, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo