Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Update sur plusieurs tables [ Archives / Problème avec une requête ] (Chris_LaFouine)

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
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é 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 Ajout dans une requête selection [ par snow190 ] Bonjour à tous, je voudrais avoir un renseignement. Voilà je fait une sélection sur plusieurs tables (qui se passe normalement) et je voudrai un cha Besoin d'aide pour une procedure [ par elpens ] Bonjour, J'ai un petit soucis avec une procédure SQL...- J'ai un champs dans une table[Sequence] qui s'appelle Argument. Ce champs (nvarchar) contient une table qui hérite de deux tables [ par kgadhi ] Bonsoir tous le monde, et merci de votre aide d'avance.j'ai une table client et je veux faire la difference entre un client physique (une personne) et requête update sql/as400 [ par vkrf ] BonjourJe rencontre sur as/400 v5r1  un problème avec la requete SQL suivante :update mabib/fichier1 set colonne100 = (select colonne2 from mabib/fich Problème de choix des champs pour requête avec critère "WHERE" [ par drakkard ] Bonjour,j'ai un petit soucis de choix de champs pour ma base SQL EXPRESS,je souhaite mettre en place une gestion de login/pwd, j'ai choisi des champs Dépendance de tables SQL [ par toutgreg ] Bonjour, Je suis entrain de faire l'architecture de ma base SQL et je bloque sur une dépendance de table. Pour résumer, j'ai 3 tables et je cherche à Requête qui boucle sur elle même [ par spyro666 ] Bonjour, j'aurais besoin d'une information : Comment puis-je faire une requête qui boucle sur elle même avec mysql4 ? Est au moins possible ou faut-il requête SQL [ par spamito ] SalutJ'ai deux tables : Stagiaire et FilièreJ'ai un champs dans la table stagiaire nommé "codefiliere". J'aimerai bien savoir comment puis-je relier c


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Appels d'offres



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.