Probleme avec un "update" alambiqué... [SQL] - SQL/NoSQL - Programmation
Marsh Posté le 15-07-2002 à 16:32:53
i gueule quoi le mossieur?
Marsh Posté le 15-07-2002 à 16:33:27
Il me semble que lorsque tu fais un UPDATE tu es obliger de SET tout les champs de la tables meme ceux ke tu veux pas modifié(faut leur remettre leur valeur d'origine au champs que tu ne veux pas modifier)
Marsh Posté le 15-07-2002 à 16:34:52
Phive a écrit a écrit : Il me semble que lorsque tu fais un UPDATE tu es obliger de SET tout les champs de la tables meme ceux ke tu veux pas modifié(faut leur remettre leur valeur d'origine au champs que tu ne veux pas modifier) |
moi jcrois pas
Marsh Posté le 15-07-2002 à 16:37:09
--greg-- a écrit a écrit : moi jcrois pas |
Possible
je dis ca pour qu'il test qd meme on sait jamais avec ce sql
mais faudrait connaitre le message d'erreur en fait
Marsh Posté le 15-07-2002 à 16:38:09
Phive a écrit a écrit : Possible je dis ca pour qu'il test qd meme on sait jamais avec ce sql mais faudrait connaitre le message d'erreur en fait |
vé, c ske je demandais, mais il est pas tres reactif cte tetedeiench
Marsh Posté le 15-07-2002 à 16:43:50
Il me met comme erreur qu'il ne trouve pas la colonne tableB.cle ... ce qui est normal vu qu'elle n'est pas dans le update ( d'ailleurs un update agencé comme ca me semble super bancal m'enfin... )
Marsh Posté le 15-07-2002 à 16:47:03
Tetedeiench a écrit a écrit : Il me met comme erreur qu'il ne trouve pas la colonne tableB.cle ... ce qui est normal vu qu'elle n'est pas dans le update ( d'ailleurs un update agencé comme ca me semble super bancal m'enfin... ) |
de fait.
Marsh Posté le 15-07-2002 à 17:17:23
Impossible de faire une jointure avec une autre table dans le WHERE d'un update
Le seul truc que j'utilise pour contourner, c'est créer une nouvelle table temporaire (identique à celle que tu veux updater) et d'utiliser INSERT INTO (qui accepte les jointures entre 2 tables). Puis drop ou truncate de ton ancienne table, et réinsertion des données MAJ à partir de la table 'temporaire'. C'est un peu lourd, mais c'est le seul moyen sans PL/SQL.
Marsh Posté le 15-07-2002 à 16:23:09
Je vous explique la chose.
j'ai deux tables. Je dois rechercher les doublons, en gros, les entreprises de la table A qui se trouvent deja dans la table B.
Jusque la, ca va.
je dispose du numero SIRET de chaque entreprise dans les deux cas.
Avec un select, je récupère facilement lesquelles sont dans les deux, avec une jointure banale.
La ou ca se corse, c'est que je veux mettre a jour la table A, en remplissant un champ jamais utilisé, pour me souvenir que cette entreprise de la table A se trouve aussi dans la table B.
En gros, remplir un champ bidon jamais utilisé de la table A, avec l'identifiant de la table B quand il y a correspondance.
mais j'arrive pas a faire le update...
Si je fais un truc style :
update TableA
Set Champbidon = TableB.cle
where TableA.numSiret IN ( select TableB.numSiret from TableB)
Forcément mossieur gueule...
Vous avez un moyen ? ( Je n'ai pas PL/SQL sinon ca aurait déjà été torché vous pensez bien )
Message édité par Tetedeiench le 15-07-2002 à 16:23:23
---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !