Ben moi j'ai toujours pas compris ce que tu voulais faire (à part utiliser absolument des curseurs).
Fonctionnellement, cette requête làte ramène plusieurs valeurs de champ1 et champ2, et tu aimerais mettre à jour CHAQUE ligne de ma_table, en insérant dans ma_table.champ1 la valeur de table2.champ1 quand ma_table.champ2=table2.champ2 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT table2.champ1, table2.champ2 FROM table2, ma_table WHERE ma_table.champ2 = table2.champ2 AND table2.champ3 = 821;
Bref, Vincent D a déjà donné la réponse à mon avis. Que donne cette requête ? (copier coller de Vincent D)
Si cette requête pose un problème ça veut alors dire que tu n'as pas une valeur unique de table2.champ1 pour chaque table2.champ2, et que donc le modèle ne va pas, ou qu'il faudra faire un choix.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 update ma_table set ma_table.champ1 = ( select table2.champ1 from table2 where table2.champ2 = ma_table.champ2 and table2.champ3 = 821 )
Mais à mon avis c'est ce que tu cherchais.
Partager