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 avancée


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Par défaut requête sql avancée
    Bonjour,

    J'ai deux tables :
    user(id, name)
    message(id, title, body, date, #user_id)

    J'aimerais trouver la requête SQL (compatible SQL standard si possible, ou sinon MySQL 5) qui permettrait de sélectionner tous les "user" (de manière distincte) triés dans l'ordre de celui qui a posté le message le plus récent à celui qui a posté le message le moins récent.

    La requête suivante :
    SELECT u.* FROM user u, message m WHERE u.id = m.user_id ORDER BY m.date DESC

    me donne cette liste, mais avec autant de fois chaque "user" que de messages qu'il a écrit.

    Si je rajoute "DISTINCT" devant u.*, ça me donne bien la liste de ces user, mais ils ne sont plus dans le bon ordre...

    Besoin d'aide !

    Si quelqu'un est un maître en SQL, et peut m'aider, grand merci d'avance :-)

    Aurapp

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    essaie ceci peut etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select user.id, user.name, max(message.date) 
    from user u join message m 
    on u.id= m.user_id group by u.id, u.name 
    order by m.date desc
    je n'ai pas de quoi tester en ce moment

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    select
            U.ID
        ,    U.NAME
        ,    max(M.DATE)
    from
            USER    as U
        inner join
            MESSAGE    as M
            on    U.ID = M.USER_ID
    group by
            U.ID
        ,    U.NAME
    order by
            max(M.DATE)    desc
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Par défaut
    Chers amis ! ça marche !

    Grand grand merci !
    Sachant que vos deux solutions sont les mêmes ;-)

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

Discussions similaires

  1. SQL avancé - Requêtes hiérarchiques
    Par phoenix67 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/03/2010, 10h49
  2. requête sql avancée
    Par celeborn56 dans le forum WinDev
    Réponses: 7
    Dernier message: 12/05/2009, 16h19
  3. Requête SQL avec tri avancé
    Par Lexarino dans le forum Débuter
    Réponses: 5
    Dernier message: 17/01/2009, 11h54
  4. [RegEx] Requête SQL sur tables non connues à l'avance (regex)
    Par lothar59 dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2007, 10h33
  5. Requte Sql Avancée, question ... ? Estce possible ?
    Par plex dans le forum Administration
    Réponses: 8
    Dernier message: 14/12/2005, 15h13

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