Bonjour,
old..ref , est ce que c'est une erreur de syntaxe ? ( dans la clause WHERE ).
Pour un UPDATE ,
tu peux utiliser l'ID comme numéro trés trés précis pour être positionné sur le bon tuple.
( à un moment, il y aura 2 ( ou 20 ) références qui seront les mêmes , c'est source d'erreurs. )
Quand un champ est modifié, il est 'réécrit'.
tu peux former ta String , puis faire l'update.
C'est + maniable au niveau 'StringBuild' , et au niveau requête à passer aussi.
=
tu a vu que tu utilises 4 fois la fonction 'substring()' ?
les 'conventions de nommage' , c'est dur entre new.ref ; old_ref ; new_ref ;old.ref . . _ . _ _ .
et je vois bien le nom de table après ON ... comme source de bug ...
là, il faut hardcode ... NOM_new_REF ...
tu voulais faire une requete dynamique ? adaptable ?
comme décomposition :
1 requete SELECT ( pour ID cible , et les données à changer si besoin ) SELECT * FROM old_REF WHERE ... ref = the old_ref;
1 fonction qui crée la String; même si substring() est utilisé plusieurs fois , c'est fait pour ça.
1 requete UPDATE; ( la plus simple possible ). UPDATE new_ref SET ..aqw = valeur , zsx = valeur_2 ... WHERE ID(old) = old_ref.ID_oldref;
Avec l'ID de la référence , tu sera sur le bon directement.
Et , il s'agit de créer une table temporaire à chaque fois ?
https://www.w3schools.com/sql/sql_update.asp
les liaisons avec JOIN , c'est difficile ...
mais elles sont trés efficaces quand il faut retirer des résultats d'un SELECT.
pour trier d'avance. ( quelles valeurs sont communes, est ce que je les gardes , est ce que je les enleves , est ce que je veux que 'gauche' , que 'droite' ... )
pour lier avec une lecture ( et une écriture plus abordable .. )
SELECT * FROM table_un , table_deux , table_cinq WHERE table_un.ID = table_cinq.ID AND table_deux.ID = table_cinq ;
C'est les clés primaires ( ID ) , qui 'link' vers les autres tables , avec la même valeur ( ID égaux et clés étrangères ) pour que les données correspondent.
---------------
Nom : Prénom : Age : Adresse : Ville : Code Postal : Num Trois Tel