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 :

Insertions avec références dans autre table


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 244
    Par défaut Insertions avec références dans autre table
    Bonjour,

    J'ai 2 tables qui n'ont pas de relations (clés secondaires) entre elles.

    Pour tous les enregistrements de la table A, je veux créer un enregistrement dans la table B, sachant que l'ID de l'enregistrement nouveau (dans B) possède la même valeur que l'ID de l'enregistrement de A.

    J'essaie donc la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO `pa34-vtiger`.`vtiger_producttaxrel` (`productid`, `taxid`, `taxpercentage`)
    VALUES (`vtiger_products`.`product_no`, '1', '19.600')
    WHERE SELECT `vtiger_products`.`product_no` FROM `pa34-vtiger`.`vtiger_products`;
    ... qui pour simplifier est de cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO `BASE`.`TABLE_B` (`productid`, `taxid`, `taxpercentage`)
    VALUES (`TABLE_A`.`product_no`, '1', '19.600')
    WHERE SELECT `TABLE_A`.`product_no` FROM `BASE`.`TABLE_A`;
    [/CODE]

    phpmyadmin m'indique alors l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    requête SQL:    
                  INSERT  INTO  `pa34-vtiger`.`vtiger_producttaxrel` ( `productid` ,
     `taxid` ,
     `taxpercentage` 
    )
    VALUES ( `vtiger_products`.`product_no` ,  '1',  '19.600'
    )
    WHERE  SELECT  `vtiger_products`.`product_no` 
    FROM  `pa34-vtiger`.`vtiger_products`      
          MySQL a répondu: 
      #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE SELECT `vtiger_products`.`product_no` FROM `pa34-vtiger`.`vtiger_products`' at line 3
    Comment faire cela ?

    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 50
    Par défaut
    Il y a beaucoup plus simple (et très rapide) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO B (SELECT product_no,'1','19.6000' FROM A)

  3. #3
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 244
    Par défaut
    Citation Envoyé par mrcmrc Voir le message
    Il y a beaucoup plus simple (et très rapide) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO B (SELECT product_no,'1','19.6000' FROM A)
    Effectivement, c'est très simple et très rapide.

    La requête devient donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO `vtiger_producttaxrel` (SELECT `productid`,'1','19.6000' FROM `vtiger_products`)
    Merci beaucoup mrcmrc.

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

Discussions similaires

  1. [AC-2010] Calcul champ avec Coef dans autre table
    Par Mathieu51 dans le forum Access
    Réponses: 4
    Dernier message: 12/09/2011, 17h14
  2. Réponses: 2
    Dernier message: 18/12/2008, 16h24
  3. Réponses: 3
    Dernier message: 20/03/2008, 14h35
  4. pb Insertion d'éléments dans une table avec mySql++
    Par donkeyquote dans le forum C++
    Réponses: 1
    Dernier message: 24/02/2008, 00h39
  5. INSERT avec condition d'une table à une autre
    Par papipasto dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/03/2006, 13h51

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