begin process at 2012 02 08 23:11:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une requête

 > 

Update sur plusieurs tables


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Update sur plusieurs tables

jeudi 11 mai 2006 à 11:42:39 | Update sur plusieurs tables

Chris_LaFouine

Bonjour,

Je voudrais savoir comment mettre à jour une table à partir des données d'une autre table. Je m'explique...

J'ai une table A et une table B. Je me suis rendu compte que les champs de B peuvent s'insérer dans A, ce qui me permettra par la suite de virer la table B. Dans ma table A, j'ai 3 champs [a,b,c] qui correspondent aux champs [x,y,z] de la table B que je veux faire passer dans la table A (sachant que A et B ont un même identifiant [i]. Donc je cherche à faire une requête UPDATE qui va m'affecter les valeurs de [x,y,z] dans [a,b,c]. Voilà la requête que j'ai fait :

UPDATE A,B
SET A.a=B.x, A.b=B.x, A.c=B.z
WHERE A.i=B.i


Bien entendu, elle ne fonctionne pas... après quelques réflexions, je comprends pourquoi elle ne fonctionne pas et je me suis dit qu'il faut peut-être faire intervenir une sous-requête... mais j'en suis pas sûr! Sinon, petite précision, j'utilise MySQL 5!

Voilà... j'espère avoir été assez clair!

Merci d'avance
vendredi 12 mai 2006 à 16:00:54 | Re : Update sur plusieurs tables

BasicInstinct

Membre Club
j'ai fait ca sous access, à adapter bien sur

http://www.sqlfr.com/infomsg/ACCESS-UPDATE-3_731842.aspx

BasicInstinct
vendredi 12 mai 2006 à 16:59:25 | Re : Update sur plusieurs tables

Chris_LaFouine

Je viens de tester à l'instant la requête suivante sous MySQL :

update A join B on (A.i = B.i)
SET A.a=B.x, A.b=B.x, A.c=B.z

Malheureusem
ent, ça ne fonctionne pas... MYSQL accepte la requête mais aucun champ n'est mis à jour. J'ai donc essayé plus simple :

update A join B on (A.i = B.i)
SET A.a='Poulet'

Et là, surprise, ça fonctionne! Enfin, en partie! En effet, seulement le premier enregistrement de A.a a été mis à jour! J'ai essayé aussi la solution que préconise aieeeuuuuuu  dans ton lien en faisant :

UPDATE A
SET A.a = (
  SELECT x
  FROM B
  WHERE A.i = B.i
)


Mais ça ne fonctionne pas plus... Je pense que MYSQL a du mal avec les update à jointure! Si vous avez d'autres propositions, je suis preneur!

vendredi 12 mai 2006 à 17:35:19 | Re : Update sur plusieurs tables

BasicInstinct

Membre Club
ca devrait marcher, j'ai trouvé ca sur le site de mysql:

Update column in a table whose values are not found in another table.

UPDATE TABLE_1 LEFT JOIN TABLE_2 ON TABLE_1.COLUMN_1= TABLE_2.COLUMN_2
SET TABLE_1.COLUMN = EXPR WHERE TABLE_2.COLUMN2 IS NULL

An outerjoin is performed based on the equijoin condition.
Records not matching the equijoin from table2 are marked with null.

This facilitates to update table1 column with expression whose corresponding value from table2 is returned as NULL



BasicInstinct


Cette discussion est classée dans : table, champs, requête, tables, update


Répondre à ce message

Sujets en rapport avec ce message

Problème Requête SQL INSERT INTO sous access [ par bonnaud ] Bonjour,J'ai un problème avec une requête INSERT INTO.En fait je veux insérer dans une BDD des champs d'une autre table. Le problème qu'en j'insère ce aide pour une requête [ par Shadow_Membre ] slt tlm,Donc voila, j'ai besoin d'aide pour une requête mysql/php. Le problème c'est que je suis un petit peu rouillé.   Soit deux table « table1 » et Comparaison de temps d'execution par rapport à la structure d'une table [ par hasen ] Amis du jour, bonjour!Je m'explique, car j'ai l'impression que mon titre n'est pas clair... J'ai une base de données Access avec 2 très grosses tables Selection des noms des champs d'une table [ par yafee ] Bonjour,Une requête SQL classique sélectionne les données d'une table.Mais comment fait-on pour sélectionner les noms des champs de ces tables.Par exe requête update avec select [ par bies ] Bonjour!!! besoin d'aide car çà fait des heures que je suis sur cette requête Au départ, j'ai ma table1 dont un extrait ci dessous. dans cette table, Renommage de champs sur plusieurs tables [ par yanis7518 ] Bonjour à toutes et à tous, Je suis débutant en sql. je chercher à créer une procédure stockée qui me permettrai de renommer tous les champs contenan Ecrire des champs dans plusieurs tables en un fois avec index [ par jacfev ] Bojour, Je dois copier des champs d'une table dans 3 autres tables. J'ai une table source nommée devis avec les champs codearticle, designation, prix, Optimisation de la requête update sous Oracle [ par YOUEL24 ] Bonjour, L'exécution de la requête ci-dessous sous oracle, me prends plus de 3h, pourriez-vous svp m'aider à l'optimiser? D'avance, je vous remercie cache de requête mysql [ par sagat06 ] Bonjour à tous, je m'intéresse depuis peu au cache de requête mysql. Je travail en local sous XP avec wampserver 2.0 (Mysql5.0.51b) Je viens de m'ap Impossible d'appliquer l'intégrité référentielle - Access 2007 [ par bebedemon ] Bonjour à tous, Je fais appel à vous car j'ai un petit problème. Je suis en train d'écrire un programme pour la gestion d'un centre sportif dans le c


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales