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 :

Requête SQL


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Requête SQL
    Bonjour,
    J'ai un soucis pour concevoir une requêtre SQL.
    J'ai une table définie telle que :
    TABLE1 (id, titre, contenu, date_msg, id_rub, login_user, parent)

    Cette table contient des données telles que :
    id | titre | contenu | date_msg | id_rub | login_user | parent
    1 | titre1 | contents | 1247233162 | 1 | toto | 0
    2 | titre2 | contents | 1247233163 | 1 | titi | 0
    3 | titre1 | contents | 1247233164 | 1 | titi | 1
    3 | titre3 | contents | 1247233165 | 1 | tutu | 0
    4 | titre1 | contents | 1247233166 | 1 | toto | 1
    5 | titre2 | contents | 1247233167 | 1 | toto | 2
    Cette table a pour but de stocker les informations d'un forum.
    Lorsque le champ parent = 0, c'est le premier message d'un nouveau sujet.
    Lorsque le champ parent <> 0, c'est un message appartenant au sujet où l'ID = parent.

    Ce que je souhaite c'est de pouvoir affiche juste le dernier message de chaque sujet. En visuel, cela donne :
    id | titre | contenu | date_msg | id_rub | login_user | parent
    3 | titre3 | contents | 1247233165 | 1 | tutu | 0
    4 | titre1 | contents | 1247233166 | 1 | toto | 1
    5 | titre2 | contents | 1247233167 | 1 | toto | 2
    Merci d'avance pour votre aide.
    Dula

  2. #2
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 560
    Points : 7 255
    Points
    7 255
    Par défaut
    Bonjour.

    Essaye ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT
            id,
            titre,
            contenu,
            date_msg,
            id_rub,
            login_user,
            MAX(parent)
    FROM TABLE1
    GROUP BY 1,2,3,4,5,6;
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT
            id,
            titre,
            contenu,
            date_msg,
            id_rub,
            login_user,
            MAX(parent)
    FROM TABLE1
    GROUP BY 1,2,3,4,5,6;
    Malheureusement, j'obtiens :
    id titre contenu date_msg id_rub login_user MAX(parent)
    1 titre1 contents 1247233162 1 toto 0
    2 titre2 contents 1247233163 1 titi 0
    3 titre1 contents 1247233164 1 titi 1
    4 titre3 contents 1247233165 1 tutu 0
    5 titre1 contents 1247233166 1 toto 1
    6 titre2 contents 1247233167 1 toto 2

  4. #4
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 560
    Points : 7 255
    Points
    7 255
    Par défaut
    Citation Envoyé par doula Voir le message
    [/CODE]
    Malheureusement, j'obtiens :
    id titre contenu date_msg id_rub login_user MAX(parent)
    1 titre1 contents 1247233162 1 toto 0
    2 titre2 contents 1247233163 1 titi 0
    3 titre1 contents 1247233164 1 titi 1
    4 titre3 contents 1247233165 1 tutu 0
    5 titre1 contents 1247233166 1 toto 1
    6 titre2 contents 1247233167 1 toto 2
    Oups!
    Il ne faut pas grouper par id ni par date!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT
            id,
            titre,
            contenu,
            date_msg,
            id_rub,
            login_user,
            MAX(parent)
    FROM TABLE1
    GROUP BY 2,3,5;
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Impec', ca marche !

    Peux tu m'expliquer ton raisonnement pour avoir trouvé cette solution ?

Discussions similaires

  1. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 20h42
  2. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 19h38
  3. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 17h26
  4. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 12h37
  5. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/02/2003, 17h44

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