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 champ d'une table a partir d'une autre table


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut update champ d'une table a partir d'une autre table
    bonjour à tous.

    j'ai deux tables: objets avec les champs: ref et prix
    et la table prix avec les champs id et ref

    ce que je veux faire:
    copier la valeur du champ id de la table prix dans le champ prix de la table objets: et ceci automatiquement pour toutes les references(ps les champs en commun sont donc ref).
    je fais un genre de requete comme update objets set prix=select id from prix, objets where prix.ref=objets.ref mais ça plante.
    Merci pour votre aide, le souci c'est que je veux le faire pour tous les enregistrements de la table objets.
    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    j'ai trouvé un peu d'aide sur le site de Mysql, j'ai trouvé ceci:
    UPDATE objets,prix SET objets.prix=prix.id
    WHERE objets.ref=prix.ref

    cette requete marche sur la derniere version de Mysql(la 5), mais quand je la teste sur l'ancien serveur sur lequel tourne le site il m'affiche ceci:

    Erreur

    requête SQL:

    UPDATE objets,
    prix SET objets.prix = prix.id WHERE objets.ref = prix.ref

    MySQL a réponduocumentation
    #1064 - You have an error in your SQL syntax near 'prix SET objets.prix=prix.id
    WHERE objets.ref=prix.ref' at line 1

  3. #3
    Membre éclairé Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Par défaut
    Ce qui risque de poser problème c'est d'avoir le nom d'un champ d'une table identique au nom d'une table...C'est pas top au niveau de la lisibilité...

  4. #4
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Je crois que ta première idée aurait été la bonne, affectation par résultat scalaire de sous-requête, si la sous requête avait été parenthésée et qu'elle ne se référait pas à la table que tu veux mettre à jour.
    Je crois qu'il te faut la corréler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE objets 
    SET prix=(SELECT id FROM prix WHERE prix.ref=objets.ref)
    Bien sûr, la sous requête ne doit retourner qu'une seule ligne (relation 1-1)
    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)

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    je n'arrive pas avec tous ce que vous m'avez passé.
    si solution y'a je suis partant.
    Merci

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Qu'est-ce qui ne fonctionne pas avec la requête de Maljuna Kris ?
    Quel est le message d'erreur ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  2. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  3. Réponses: 4
    Dernier message: 20/03/2007, 09h54
  4. Update d'une table a partir d'une autre table
    Par Yannis06 dans le forum Oracle
    Réponses: 6
    Dernier message: 11/08/2005, 11h32

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