Bonjour Jéjér78,
Dans la première requête, les deux alias "pointent" sur la même ligne: celle avec id = 3.
Ce n'est pas ce qu'on cherche à faire.
Si tu veux faire cette affectation:
Si T1id = 1 alors T1data = valeur de T1 où T1data contient 'AZER'
Il faut que:
- La ligne source soit celle dont T1data contient 'AZER'
- La ligne cible soit celle dont l'id = 1
- Et pour que source et cible soient deux lignes différente, il faut que les id diffèrent
Donc la requête devient:
Là tu devait avoir les bonnes valeur pour source et cible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Select source.*,cible.* from t1 as source inner join t1 as cible on source.id <> cible.id where source.t1data like '%AZER%' and cible.id = 1
Si on a bien les bonnes données pour Source et Cible, on peut passer à un UPDATE:
Après tu peux ajouter les autres conditions dans la clause WHERE, pour gérer les autres cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 update T1 as cible set data = source.data from t1 as cible inner join t1 as source on source.id <> cible.id where source.t1data like '%AZER%' and cible.id = 1
Tatayo.
Partager