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

Langage SQL Discussion :

Mise à jour de champ sous condition


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Points : 49
    Points
    49
    Par défaut Mise à jour de champ sous condition
    Bonjour,

    Je ne sais pas ce que j'ai j'arrête pas d'avoir des problèmes avec l'instructions UPDATE.
    J'ai les tables suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE IF NOT EXISTS `sites_dme_vip` (
      `NUM_SITE_THEO` varchar(11) NOT NULL,
      `critere` varchar(11) NOT NULL,
      PRIMARY KEY (`NUM_SITE_THEO`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE IF NOT EXISTS `final` (
      `site_theorique` varchar(11) NOT NULL DEFAULT '0',
      `NUM_SITE_GEO` varchar(11) NOT NULL,
      `equipement_ID` varchar(11) NOT NULL DEFAULT '0',
      `priorite_finale` varchar(250) NOT NULL DEFAULT '0',
      PRIMARY KEY (`equipement_ID`),
      KEY `priorite_finale` (`priorite_finale`),
      KEY `site_theorique` (`site_theorique`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Je veux mettre à jour le champ "final.priorite_finale" si "final.site_theorique=sites_dme_vip.NUM_SITE_THEO"

    Je fais ça alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE final SET priorite_finale=CONCAT(site_theorique, '', critere)
    WHERE EXISTS 
    (SELECT 1 FROM sites_dme_vip
    WHERE sites_dme_vip.NUM_SITE_THEO=final.site_theorique)
    Mais j'ai l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1054 - Champ 'critere' inconnu dans field list
    A l'aide!

    Merci

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Exactement ton message d'erreur : critere n'est pas dans la table final !
    Si tu veux utiliser la colonne de l'autre table, il faut qu'elle soit dans le FROM (puisque tu es en MySQL) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE final a, sites_dme_vip b
    set a.xxx = b.xxx
    WHERE jointure

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 91
    Points : 49
    Points
    49
    Par défaut
    J'ai essayé cette requête et ça marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE final, sites_dme_vip SET priorite_finale=CONCAT(priorite_finale, ' ', critere)
    WHERE sites_dme_vip.NUM_SITE_THEO=final.site_theorique
    Merci de ton aide

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/05/2013, 16h41
  2. Mise à jour de champ sous conditions
    Par aiss57 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/06/2009, 15h05
  3. Réponses: 10
    Dernier message: 03/03/2009, 11h46
  4. mise à jour plusierus champs
    Par bachilbouzouk dans le forum ASP
    Réponses: 12
    Dernier message: 28/04/2005, 11h22
  5. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 10h25

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