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

 MySQL Discussion :

Jointure et UPDATE


Sujet :

MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2012
    Messages : 81
    Points : 44
    Points
    44
    Par défaut Jointure et UPDATE
    Bonjour,
    J'ai deux tables:

    Table 1:

    id | qte | price
    1 | 2 | 2.5
    2 | 4 | 4.75

    Table 2:

    id | qte | price
    1 | 1 | 2.55
    3 | 1 | 3.5

    Est-il possible de les fusionner pour obtenir le résultat suivant sur la table 1:

    id | qte | price
    1 | 3 | 2.55
    2 | 4 | 4.75
    3 | 1 | 3.5

    Merci.

  2. #2
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2012
    Messages : 81
    Points : 44
    Points
    44
    Par défaut
    J'ai trouvé cette solution, est-ce correct ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE table_1
    JOIN table_2 ON table_1.id = table_2.id
    SET table_1.qte = table_1.qte + table_2.qte
    AND table_1.price = table_2.quantity

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    As-tu exécuté ta requête pour voir si c'était correct ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Points : 301
    Points
    301
    Par défaut
    Bonsoir,

    La requête d'Alainyvan ne sera pas correcte.

    Il faut au minimum faire un UPDATE sur la table 1 pour cumuler certaines quantités (et apparemment mettre le prix le plus élevé), puis faire un INSERT pour ajouter la ligne n°3.

    Si votre programme doit être lancé régulièrement, il faut s'orienter sur une procédure stockée (CREATE PROCEDURE), ou éventuellement sur un ensemble de triggers pour des modifications au fil de l'eau.
    Sinon, des requêtes UPDATE et INSERT indépendantes suffiront.

    Dans tous les cas votre problème sera simple à résoudre.

Discussions similaires

  1. Update dans SYBASE avec jointure sur 2 colonnes
    Par metheorn dans le forum Sybase
    Réponses: 2
    Dernier message: 24/06/2005, 16h51
  2. [PL/SQL] update avec jointure
    Par Fox_magic dans le forum Oracle
    Réponses: 6
    Dernier message: 09/12/2004, 12h19
  3. update et jointure
    Par frantzgac dans le forum SQL
    Réponses: 21
    Dernier message: 06/12/2004, 10h53
  4. Réponses: 2
    Dernier message: 08/03/2004, 15h10
  5. update et jointure
    Par damn dans le forum Langage SQL
    Réponses: 8
    Dernier message: 25/02/2004, 08h44

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