PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → SQL UPDATE avec deux tables
SQL UPDATE avec deux tables
Started by Gurdarr, Feb., 16 2017 7:23 PM - 5 replies
Registered member
227 messages
Popularité : +18 (20 votes)
Posted on February, 16 2017 - 7:23 PM
Bonjour,

je fais cette requette en update sur un HFSQL :
UPDATE CdeCL,Contcl SET CdeCL.CodeClient = Contcl.CodeClient WHERE Contcl.IDCONTCL = CdeCL.IDCONTCL

et windev me dit pas de problème mais mes code client reste vide...

Est ce que ces update sont géré par Windev ou je me fait troller ?

Avez vous une solution ou je dois faire Hfiltre ;( ?

Merci
Registered member
945 messages
Popularité : +102 (110 votes)
Posted on February, 16 2017 - 8:25 PM
bonsoir,
je ne connaissais pas cette syntaxe....
La seule que je connais est :
UPDATE table_name SET column_name = value [, column_name = value ...] [WHERE condition]
en tout les cas PosgreSQL par exemple ne supporte pas cette syntaxe
Message modified, February, 16 2017 - 8:26 PM
Registered member
227 messages
Popularité : +18 (20 votes)
Posted on February, 17 2017 - 9:22 AM
arf c'est dommage, apparemment c'est OK dans Mysql et c'est pas bloquant dans windev ^^ même ça traite longtemps pour rien.
Je vais poser la question au support au cas où mais j'ai trouver des postes ou les gens disent que ce n'est plus dans le standard SQL.

Merci Philippe Pasquali
Registered member
2,566 messages
Popularité : +222 (260 votes)
Posted on February, 17 2017 - 3:24 PM
Bonjour,

Je doute que cette syntaxe fonctionne. En tout cas moi je n'ai jamais utilisé cette syntaxe pour faire un update.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Posted on February, 17 2017 - 5:33 PM
Hello,
C'est faisable à condition d'utiliser INNER JOIN.
Exemple : http://stackoverflow.com/questions/8765490/mysql-update-two-tables-at-once
Posted on February, 18 2017 - 1:15 PM
Avec Oracle, quand j'ai des besoins similaires, je fais :

update tb1 set col2 = (select tb2.col2 from tb2 where tb2.col1 = tb1.col1)

ça marche sans problème. Il faut juste adapter un peu si la sous-requête risque de renvoyer 2 enregistrements 'fils' pour un enregistrement 'père', ou pour les cas où la sous-requête renvoie aucun enregistrement fils pour un enregistrement père.