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 :

Obtenir chaque 1er enregistrement d'une clé secondaire


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Points : 96
    Points
    96
    Par défaut Obtenir chaque 1er enregistrement d'une clé secondaire
    Bonjour,

    La requête suivante, me donne quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT `parEveID` , `parID` , `parChaID` , `parStaID`
    FROM `participant`
    WHERE `parEveID`
    IN ( 12, 13, 14, 15, 16)
    AND `parStaID`
    BETWEEN 2
    AND 5
    ORDER BY `parEveID` , `parStaID` , `parDateInscription` DESC
    LIMIT 0 , 60
    Résultats :
    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
     
    parEveID parID parChaID parStaID
    12 	48 	66 	4
    12 	47 	68 	5
    12 	49 	56 	5
    12 	50 	134 	5
    12 	51 	203 	5
    13 	54 	67 	4
    13 	53 	77 	4
    13 	56 	56 	5
    14 	61 	77 	3
    14 	60 	68 	5
    14 	59 	56 	5
    14 	58 	203 	5
    15 	63 	112 	2
    15 	66 	66 	3
    15 	64 	68 	4
    15 	65 	77 	5
    16 	68 	2 	2
    16 	69 	77 	3
    16 	71 	112 	5
    16 	70 	66 	5
    La dernière colonne indique un statut du personnage, plus le statut est élever, plus le chiffre est petit.

    Par exemple, pour l'événement parEveID (13) il y a 3 participants, j'aimerais ne récupérer que le premier des 3 enregistrements. Est-ce possible de modifier cette requête pour obtenir quelque chose du genre comme résultats :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    parEveID parID parChaID parStaID
    12 	48 	66 	4
    13 	54 	67 	4
    14 	61 	77 	3
    15 	63 	112 	2
    16 	68 	2 	2
    Qui permettrait d'obtenir le ID du personnage (parChaID) qui devrait être promu au plus haut rang parStaID (1). Avec une requete du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE `participant` SET `parStaID` = 1 WHERE `parID` IN ( 12, 13, 14, 15, 16 )
    Voilà, le but étant de ne pas arriver avec pleins de requete update dans une boucle...

    Si vous avez des pistes, merci de m'éclairer

    A bientot,

    Sylvain

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Dans ton exemple qu'est-ce qui détermine que ce soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    parEveID parID parChaID parStaID
    13 	54 	67 	4
    qui soit retenu plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    parEveID parID parChaID parStaID
    13 	53 	77 	4
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

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

Discussions similaires

  1. (débutant) lister le 1er enregistrement d'une table
    Par superseba888 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/01/2011, 15h12
  2. Réponses: 6
    Dernier message: 25/03/2008, 15h32
  3. Ne pas retourner le 1er enregistrement d'une liste
    Par Yadutaf dans le forum Requêtes
    Réponses: 5
    Dernier message: 12/04/2007, 08h34
  4. [C#/Oracle] Comment obtenir le dernier enregistrement d'une table ?
    Par heavydrinker dans le forum Accès aux données
    Réponses: 1
    Dernier message: 10/08/2006, 17h03
  5. Obtenir le 1er jour du mois d'une date
    Par soso78 dans le forum Access
    Réponses: 4
    Dernier message: 27/09/2005, 12h15

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