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

Requêtes MySQL Discussion :

classer par date les resultats de 2 tables avec UNION


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 17
    Points : 16
    Points
    16
    Par défaut classer par date les resultats de 2 tables avec UNION
    Bonjour,

    Je souhaite obtenir les dates les plus recentes sur 2 tables :
    La table sujet contient une date de creation
    La table reponse contient une date de creation et un lien sur la table sujet
    Les 2 tables sont liées à une table theme.

    Voici ma requete :
    (SELECT sujet_id,MAX(sujet_date) FROM sujet
    WHERE sujet_theme="2" GROUP BY 1)
    UNION
    (SELECT reponse_sujet_id,MAX(reponse_date) FROM reponse
    WHERE reponse_theme="2" GROUP BY 1)

    La requete affiche la date max de chacune de 2 tables sans les grouper. Comment je peux regrouper les résultats afin de n'avoir que la date la + recente par sujet. En somme une espece de group by sur l'id de la table sujet.
    PS : Le group by sur le resultat de l'union ne semble pas fonctionner !

    Merci

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Tu as essayé comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    (SELECT sujet_id,MAX(sujet_date) as dateMax 
     FROM sujet
     WHERE sujet_theme='2')
     
    UNION
     
    (SELECT reponse_sujet_id,MAX(reponse_date) as dateMax 
     FROM reponse
     WHERE reponse_theme='2')
     
    GROUP BY dateMax

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Bonjour,


    Voila ce qu'il me met lorsque je test ta solution :

    Erreur de syntaxe pr賠de 'GROUP BY dateMax LIMIT 0, 30' ࠬa ligne 1

    Donc ca marche pas non plus.

  4. #4
    Membre régulier
    Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2003
    Messages : 94
    Points : 116
    Points
    116
    Par défaut
    en 4.1 ca doit marcher, en 4.0 faudra passer par 1 table temporaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    select T.ID, MAX(T.MAXI) 
    from
    (
    SELECT sujet_id ID, MAX(sujet_date) MAXI FROM sujet 
    WHERE sujet_theme="2" GROUP BY 1 
    UNION 
    SELECT reponse_sujet_id ID, MAX(reponse_date) MAXI FROM reponse 
    WHERE reponse_theme="2" GROUP BY 1
    ) T
    group by 1
    order by 1
    limit 30
    Cdlt

    Selecta

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Super ca marche nickel,
    merci

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

Discussions similaires

  1. Classer par dates dans un listview
    Par AmauryLondon dans le forum Excel
    Réponses: 0
    Dernier message: 02/07/2012, 13h58
  2. [WD16] Passer du texte par dessus les colonnes d'une table
    Par Jiybee dans le forum WinDev
    Réponses: 14
    Dernier message: 31/08/2011, 00h01
  3. Réponses: 10
    Dernier message: 19/07/2010, 21h46
  4. [MySQL] Ordonner par date et heure sur 2 tables
    Par rems033 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 10/02/2009, 14h39
  5. Classer par date
    Par shlag dans le forum Ruby on Rails
    Réponses: 8
    Dernier message: 06/03/2008, 11h29

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