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 :

Modifier plusieurs lignes à l'aide d'une sous-table


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut Modifier plusieurs lignes à l'aide d'une sous-table
    Bonjour à tous

    J'ai à ma disposition une base de données qui gère un forum, avec des utilisateurs et des posts. J'aimerai mettre à jour l'intégralité des colonnes des utilisateurs avec une colonne "user_posts", qui dénote le nombre de posts de chaque utilisateur.

    Je peux récupérer ces nombres via la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT user_id, COUNT(post_id) AS user_posts 
    FROM posts 
    GROUP BY user_id
    Je sais modifier plusieurs lignes avec une valeur, avec UPDATE ou REPLACE.
    Cependant, je n'arrive pas à "joindre les deux bouts", pour insérer une valeur différente sur chaque ligne, en faisant correspondre le "user_id" de la table des utilisateurs et le "user_id" de la table générée.

    Pouvez-vous me guider ?

    Pierre

  2. #2
    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
    bonjour,

    peux tu essayer cette requête ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    update 
    users U,
    (SELECT user_id, COUNT(post_id) user_posts FROM posts GROUP BY user_id) C
    set U.user_posts = C.user_posts
    where U.user_id = C.user_id
    Cordialement

    selecta

  3. #3
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par selecta Voir le message
    bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    update 
    users U,
    (SELECT user_id, COUNT(post_id) user_posts FROM posts GROUP BY user_id) C
    set U.user_posts = C.user_posts
    where U.user_id = C.user_id
    selecta
    Bonjour

    C'est parfait, merci beaucoup ! Il fallait donc faire une jointure basique avec un WHERE.

    Pierre

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 55
    Points : 95
    Points
    95
    Par défaut
    Et bien je ne trouve pas cela si basique et suis très content de cette solution.

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

Discussions similaires

  1. Requête pour modifier plusieurs lignes d'une colonne
    Par nvit24 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/08/2011, 00h42
  2. Réponses: 4
    Dernier message: 23/09/2008, 22h39
  3. Réponses: 6
    Dernier message: 05/08/2006, 10h54
  4. Besoin d'aide pour une sous requete
    Par Celia1303 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/10/2005, 14h09
  5. Réponses: 2
    Dernier message: 10/05/2005, 18h15

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