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 :

Récupérer l'enregistrement le plus récent


Sujet :

Requêtes MySQL

  1. #1
    Membre averti Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 251
    Points : 310
    Points
    310
    Par défaut Récupérer l'enregistrement le plus récent
    Bonjour,

    J'ai deux tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    action
    id_action | nom_action
    1         | Toto
    2         | Titi
     
    histo
    id_histo | id_action | date_histo | val_histo
    1        |     1     | 2016-06-10 | 50
    2        |     2     | 2016-06-11 | 60
    3        |     2     | 2016-06-12 | 80
    4        |     1     | 2016-06-13 | 40
    Objectif : récupérer les données les plus récentes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nom_action | date_maxi  | val_histo
    Toto       | 2016-06-13 | 40
    Titi       | 2016-06-12 | 80
    Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 803
    Points
    30 803
    Par défaut
    As-tu un peu cherché dans ce forum si cette question avait déjà été posée ?
    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.

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut Amélie Ladoque.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `action`
    --------------
     
    --------------
    CREATE TABLE IF NOT EXISTS `action`
    ( `id_action`  integer unsigned not null auto_increment primary key,
      `nom_action` varchar(255)     not null
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    insert into `action` (`nom_action`) values
      ('toto'), ('titi')
    --------------
     
    --------------
    select * from action
    --------------
     
    +-----------+------------+
    | id_action | nom_action |
    +-----------+------------+
    |         1 | toto       |
    |         2 | titi       |
    +-----------+------------+
    --------------
    DROP TABLE IF EXISTS `histo`
    --------------
     
    --------------
    CREATE TABLE IF NOT EXISTS `histo`
    ( `id_histo`    integer unsigned not null auto_increment primary key,
      `id_action`   integer unsigned not null,
      `date_histo`  date             not null,
      `val_histo`   varchar(255)     not null,
      CONSTRAINT `FK_histo_action` FOREIGN KEY (`id_action`) REFERENCES `action` (`id_action`) ON DELETE CASCADE ON UPDATE CASCADE
    ) engine=innoDB
      default charset=latin1 collate=latin1_general_ci
      row_format=compressed
    --------------
     
    --------------
    insert into `histo` (`id_action`,`date_histo`,`val_histo`) values
      (1, '2016-06-10', 50),
      (2, '2016-06-11', 60),
      (2, '2016-06-12', 80),
      (1, '2016-06-13', 40)
    --------------
     
    --------------
    select * from histo
    --------------
     
    +----------+-----------+------------+-----------+
    | id_histo | id_action | date_histo | val_histo |
    +----------+-----------+------------+-----------+
    |        1 |         1 | 2016-06-10 | 50        |
    |        2 |         2 | 2016-06-11 | 60        |
    |        3 |         2 | 2016-06-12 | 80        |
    |        4 |         1 | 2016-06-13 | 40        |
    +----------+-----------+------------+-----------+
    --------------
    select a.nom_action,
           h.date_histo,
           h.val_histo
     
    from            histo  as h
    inner join      action as a
    on a.id_action = h.id_action
     
    left outer join histo  as z
    on  z.id_action  = h.id_action
    and z.date_histo > h.date_histo
     
    where z.id_histo is null
     
    order by a.nom_action desc
    --------------
     
    +------------+------------+-----------+
    | nom_action | date_histo | val_histo |
    +------------+------------+-----------+
    | toto       | 2016-06-13 | 40        |
    | titi       | 2016-06-12 | 80        |
    +------------+------------+-----------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #4
    Membre averti Avatar de Amélie Ladoque
    Inscrit en
    Novembre 2004
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 251
    Points : 310
    Points
    310
    Par défaut
    Parfait !
    Je coincais sur un JOIN.

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

Discussions similaires

  1. [AC-2007] Récupérer l'enregistrement le plus récent dans une requête
    Par MelaAllIn dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/07/2011, 15h36
  2. [MySQL] Récupérer les 20 enregistrements les plus récents
    Par Alexdezark dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 29/08/2009, 23h56
  3. Réponses: 9
    Dernier message: 26/06/2008, 23h43
  4. Réponses: 5
    Dernier message: 02/05/2008, 15h28
  5. recup des enregistrement les plus récents.
    Par julien_guy dans le forum Langage SQL
    Réponses: 8
    Dernier message: 29/06/2004, 11h04

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