Bonjour à tous !
Je galère pour faire un update massif sur un champ d'une table.
Alors j'ai 2 tables, T_HALL qui correspond donc à des salles et T_CITY qui correspond donc à des villes de rattachement.
Dans T_HALL j'ai un champ city_id (celui que je veux updaté car il est null à l'heure actuelle) qui correspond à l'id de la ville de rattachement (T_CITY)
j'ai également un champ T_HALL.city qui correspond au nom de la ville.
Dans T_CITY, J'ai un champ id et champ name qui correspond au nom de la ville.
L'idée est donc d'updater le champ T_HALL.city_id pour chacune des salles où je trouve l'id dans la table des villes de rattachement en se basant sur les noms, et ceci pour dégrossir car j'ai évidemment des cas particuliers comme les villes ayant des arrondissements...
J'ai fait une table de villes de rattachement pour me simplifier la vie avec les différents codes postaux et noms de villes qui peuvent être multiples (cas des arrondissements par exemple et il peux également y avoir plusieurs codes postaux pour une même ville ou plusieurs villes avec le même code postal) ...
Donc voici ce que j'ai essayé sans succès :
1 2 3 4
|
UPDATE T_HALL
SET T_HALL.city_id = (SELECT T_CITY.id FROM T_CITY WHERE T_CITY.name = T_HALL.city)
WHERE EXISTS (SELECT T_CITY.id FROM T_CITY WHERE T_CITY.name = T_HALL.city); |
ça me renvoie :
Subquery returns more than 1 row
J'aurais donc besoin de vous pour comprendre ce qui cloche car je suis loin d'être expert sql.
Merci d'avance.
Partager