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 :

UPDATE + JOINTURE + COUNT


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut UPDATE + JOINTURE + COUNT
    Bonjour et bonne année 2010 à tous !

    Voici mon problème, qui pour une fois est simple à expliquer !

    J'ai une application de type messagerie: Une table `compte`, et une table `message`.

    Avant, je calculais l'espace utilisé avec une requête COUNT à chaque affichage de page. Avec 500 000+ messages, ca commencait à être lent. Maintenant, je pré-calcul cette valeur. À chaque ajout, le champs `compte`.`nbrMsg` s'incrémente, et à chaque suppression, il diminue.

    Actuellement je dois faire la transition entre l'ancien et le nouveau système, c'est à dire calculer pour chaque compte combien de messages il possède.


    J'essaie donc de faire une requête telle que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE `compte` as c
    STE nbrMsg = ( SELECT COUNT(id)
                          FROM `message`
                          WHERE compteId = c.id );
    ... Mais MySQL ne semble pas apprécier

    Une idée ?

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Bonjour,

    j'espère que c'est une erreur de recopie, car c'est SET et non STE qu'il faut employer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE `compte` AS c
    SET nbrMsg = ( SELECT COUNT(compteId)
                          FROM `message`
                          WHERE compteId = c.id );
    Sur MySQL 5, cette requête passe très bien

    Pensez donc à donner votre version si cela ne corrige pas votre problème.

    ++
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

Discussions similaires

  1. Jointure / Count
    Par altecad dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/05/2007, 09h30
  2. Update avec count
    Par baboun007 dans le forum Access
    Réponses: 4
    Dernier message: 22/12/2006, 11h10
  3. [MySQL 5] UPDATE et COUNT()
    Par Takusen dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/11/2006, 17h49
  4. Réponses: 2
    Dernier message: 08/03/2004, 15h10
  5. [débutant] Jointure + Count
    Par Yann21 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 28/10/2003, 13h52

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