Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/11/2011, 03h29   #1
Invité de passage
 
Inscription : juillet 2009
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 10
Points : 0
Points : 0
Par défaut update composé composants

bonsoir,
celà fait un moment que je bloque sur une requête de mise-à-jour.
ma table "composé":
  • id_master (primary key)
  • master_value.
ma table "composants":
  • id_slave (primary key)
  • id_master [references master(id_master)]
  • slave_value.
est-il possible de faire un update pour obtenir:
  • master_value=sum(slave_value)
  • quand composé.id_master=composants.id_master?
d'avance merci pour votre aide,
sylvie
sylvie23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 07h31   #2
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 531
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

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

Informations forums :
Inscription : novembre 2005
Messages : 2 531
Points : 3 524
Points : 3 524
Saluton,
Oui, mais est-ce bien utile voire raisonnable ?
Cela veut dire qu'à chaque changement dans la table composants il faudra faire cette requête de mise à jour de la table composé.
Code MySQL :
1
2
3
4
5
UPDATE composé cm 
INNER JOIN composants cs
    USING (id_master)
SET master_value=SUM(slave_value)
GROUP BY cm.idmaster
Citation:
Depuis MySQL version 4.0.4, vous pouvez aussi faire des opérations de UPDATE qui couvrent plusieurs tables :

UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;

L'exemple ci-dessus montre une jointure interne, en utilisant la virgule comme séparateur, mais une commande UPDATE multi-table peut utiliser n'importe quel type de jointure autorisée dans une commande SELECT, tel qu'un LEFT JOIN.

Note : vous ne pouvez pas utiliser ORDER BY ou LIMIT avec les UPDATE multi-table.
__________________
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)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h43.


 
 
 
 
Partenaires

Hébergement Web