begin process at 2010 02 10 02:13:49
  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, Update d'un champ d'une table vers un autre champ... [ par deejoss ] Bonjour a tous, je suis devant un problème : je cherche a mettre à jour une table avec un id d'une autre table : je souhaite renseigner dans la table Show tables [ par DMK04 ] Bonjour, Je voudrais savoir s'il est possible de rajouter (et si oui, comment ?) des critères sur l'affichage de la liste des tables d'une base de do Lenteur d'execution dans une requte [ par lidybekham07 ] bonsoir, mon problème est le suivant j'ai creé une requete qui calcule le chiffre d'affaire ht d'un client ainsi que son total TVA,Total Remise,,... Comparer date('y-m-d') avec un champs DATETIME [ par reedbedroom ] Bonjour à tous, Je recherche à pouvoir comparer une date simple obtenu par date('y-m-d')avec un champs datetime situé dans une table. Mon souci est Boucler sur deux tables [ par XtazyMushroom ] Bonjour j'ai un petit probleme pour executer une boucle sur deux tables. Je m'explique J'ai une table 1 et une table 2: Table 1 id(char) valeur 334


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,328 sec (4)

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