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 :

Erreur: You can't specify target table 's1' for update in FROM clause


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Points : 28
    Points
    28
    Par défaut Erreur: You can't specify target table 's1' for update in FROM clause
    Bonjour,
    j'ai besoin d'aide pour une requète.
    Je suis sous mysql 5.1.41

    J'ai une table société et une table adresse, certaines sociétés portent le même nom mais ont des adresses différentes, je voudrais changer leur libellé en le concaténant avec la ville.

    J'ai tenté cette requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE `societes` s1
    SET s1.libel = ( Select  concat(s.libel,' / ',Ville) as nlibel FROM `societes` s, adresses a 
    Where libel in
    ( SELECT libel FROM `societes` group by libel
    Having count(libel) >1)
    And  a.id = s.id_adresse And s1.id = s.id
    )
    Mais ça affiche l'erreur:
    You can't specify target table 's1' for update in FROM clause
    Quel est le problème ?

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    Salut, ta requête risque pas de marcher avec ton select dans le set de l'update...
    select renvoie un jeu de résultats pas une valeur scalaire (int, varchar, text, etc...)
    faudrais que tu mettent les create de tes tables pour voir comment bien faire les choses...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Points : 28
    Points
    28
    Par défaut
    Voici les create:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    CREATE TABLE IF NOT EXISTS `societes` (
      `id` int(11) NOT NULL AUTO_INCREMENT ,
     
      `libel` varchar(64) COLLATE utf8_bin DEFAULT NULL ,
      `id_adresse` int(11) DEFAULT NULL ,
      `siret` varchar(45) COLLATE utf8_bin DEFAULT NULL ,
      `activite` varchar(100) COLLATE utf8_bin DEFAULT NULL ,
      `rcs` varchar(100) COLLATE utf8_bin DEFAULT NULL ,
      `immatriculation` date DEFAULT NULL ,
      `id_nationalite` varchar(3) COLLATE utf8_bin DEFAULT NULL 
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin  AUTO_INCREMENT=81 ;
     
     
    CREATE TABLE IF NOT EXISTS `adresses` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `bat` varchar(45) COLLATE utf8_bin DEFAULT NULL ,
      `rue` varchar(255) COLLATE utf8_bin DEFAULT NULL ,
      `complement` varchar(50) COLLATE utf8_bin DEFAULT NULL ,
      `codePostal` varchar(10) COLLATE utf8_bin DEFAULT NULL ,
      `Ville` varchar(45) COLLATE utf8_bin DEFAULT NULL ,
      `date_modif` datetime DEFAULT NULL
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin  AUTO_INCREMENT=16820 ;

Discussions similaires

  1. Erreur "You can't use'\spacefactor' in vertical mode"
    Par mattlev dans le forum Erreurs - Avertissements
    Réponses: 7
    Dernier message: 13/05/2015, 03h00
  2. Réponses: 8
    Dernier message: 15/03/2012, 17h31
  3. Can't specify target in FROM clause
    Par Linio dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/12/2010, 15h00
  4. Réponses: 2
    Dernier message: 17/03/2008, 15h38
  5. Réponses: 3
    Dernier message: 07/03/2008, 14h31

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