guivrator
Messages postés11Date d'inscriptionvendredi 16 mai 2008StatutMembreDernière intervention17 avril 2009
-
17 avril 2009 à 11:46
guivrator
Messages postés11Date d'inscriptionvendredi 16 mai 2008StatutMembreDernière intervention17 avril 2009
-
17 avril 2009 à 15:35
Bonjour,
J'ai crée une base de données dans laquelle j'ai un premier tableau T1 contenant environ 25 champs donc une clé primaire ID. Pour remplir ce tableau je dois a chaque fois insérer des données provenant d'autres tableaux (T2, T3, T4, T5 ...) en insérant les données pour un ID correspondant
Si je veux sélectionner le contenu des champs baba et bobo de T2 correspondant a l'ID de T1 et T2 je fait
SELECT baba, bobo FROM T2 INNER JOIN T1 ON T1.ID = T2.ID
Logiquement pour insérer le tout dans T1 je fait
INSERT INTO T1 (baba, bobo) SELECT baba, bobo FROM T2 INNER JOIN T1 ON T1.ID = T2.ID
La requête va vouloir me mettre les résultats à la suite et donc erreur puisqu'il y aura 2 fois la même valeur pour l'ID qui est clé primaire
Comment faire pour ajouter baba et bobo dans la table T1 a l'ID correspondant a celui de la table T2?
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 20113 17 avril 2009 à 15:16
bonjour,
est-ce que tes enregistrements existent deja dans T1 ?
dans ce cas, il ne faut pas faire un INSERT, mais un UPDATE :
UPDATE T1SET baba (SELECT baba from T2 where ID T1.ID),bobo (SELECT bobo FROM T2 WHERE ID T1.ID)
mais pour cela il faut etre sur que les sous requetes ne renvoient qu'un seul resultat, donc que chaque ID de T1 n'apparait qu'une seule fois dans T2...