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 :

Requete UPDATE avec SELECT sur 2 champs


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Requete UPDATE avec SELECT sur 2 champs
    Bonjour,

    Voila je n'arrive pas à mettre à jour un champ d'une table B sur laquelle je doit faire une comparaison entre cette même table et une autre table A
    petite demonstration :

    Table A
    Champs A1
    Champs A2
    Champs A3

    Table B
    Champs B1
    Champs B2
    Champs B3

    Je voudrai mettre à jour le champs B3 avec la valeur du champs A2 si le champs A1 = champs B2 et champs A3 = champs B1 ?

    Merci pour votre aide.
    Cordialement

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    tu peux te baser sur le dernier exemple de la documentation suivante : http://dev.mysql.com/doc/refman/5.0/fr/update.html

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci mais j'ai déjà consulter la documentation et je n'arrive pas à écrire cette requete !

  4. #4
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Montres-nous la structure de ta table au format SQL (CREATE TABLE..) ainsi qu'un jeu d'essais (INSERT INTO..) et le résultat exacte que tu veux obtenir.

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ok merci !
    voici la création des tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE IF NOT EXISTS `TableA` (
      `champsA1` varchar(3) NOT NULL default '',
      `champsA2` varchar(3) NOT NULL default '',
      `champsA3` varchar(3) NOT NULL default ''
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO `TableA` (`champsA1`, `champsA2`, `champsA3`) VALUES
    ('aaa', 'bbb', 'ccc'),
    ('ddd', 'eee', 'fff');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE IF NOT EXISTS `TableB` (
      `champsB1` varchar(3) NOT NULL default '',
      `champsB2` varchar(3) NOT NULL default '',
      `champsB3` varchar(3) NOT NULL default ''
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO `TableB` (`champsB1`, `champsB2`, `champsB3`) VALUES
    ('ccc', 'aaa', ''),
    ('fff', 'ddd', '');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `TableB` SET `champsB3`= (SELECT `champA3` FROM `TableA`,`TableB`) WHERE (TableA.champA1 = TableB.champsB2 AND TableA.champsA3 = TableB.champsB1);
    après quelque recherche sur le net dans certaine documentation on parle de table temporaire....mais je ne sais pas comment les utiliser !

    Merci

  6. #6
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Cela devrait ressembler à :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE tableA, tableB SET champsB3=champsA3
    WHERE champsA1=champsB2
    AND champsA3=champsB1

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Effectivement ça fonctionne...merci beaucoup ! je me suis vraiment tordu l'esprit pour rien....j'avais fait des imbrication avec un select....

  8. #8
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    la dernière requête de la documentation que je t'ai donné était tout de même une bonne piste non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE items,month SET items.price=month.price
    WHERE items.id=month.id;

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

Discussions similaires

  1. requete update avec select imbriqué
    Par mikees dans le forum SQL
    Réponses: 3
    Dernier message: 09/02/2009, 17h42
  2. UPDATE avec SELECT sur la même table
    Par Invité dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/12/2007, 03h39
  3. Requete Update avec Select imbriqué: etrange resultat!
    Par corentone dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/08/2007, 15h05
  4. requete sql avec between sur des champs de type Date
    Par ersoufiane dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/08/2006, 19h43
  5. pb avec select sur deux champs
    Par graphicsxp dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/03/2005, 15h30

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