|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() |
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 : Code :
J'aurais donc besoin de vous pour comprendre ce qui cloche car je suis loin d'être expert sql. Merci d'avance. |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
L'erreur est très explicite
Code :
SELECT T_CITY.id FROM T_CITY WHERE T_CITY.name = T_HALL.city Il doit donc exister des doublons de nom dans votre table T_CITY.
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() |
exact il y a des doublons vu qu'il y a plusieurs villes qui ont le même nom ...
J'avais pas pensé à ça ! merci je vais donc utiliser le Code Postal mais bon du coup ça va beaucoup plus filtrer avec cette histoire des multiples codes postaux ... Bon tant pis... |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() |
Et sinon sais tu comment faire une requête pour identifier ces doublons ?
|
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Genre ceci ?
Code :
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
||
|
|
00
|
|
|
#6 | ||
|
Nouveau Membre du Club
![]() |
Merci bien
Bon sinon j'ai une autre question, j'ai tenté autre chose mais je bloque ! En fait j'ai fait ceci : Code :
Code :
SELECT city FROM T_HALL WHERE city_id IS NULL GROUP BY city ORDER BY city; Est-ce que c'est possible juste par SQL ? Merci d'avance |
||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Votre requête va vous poser les mêmes problèmes, si vous n'avez pas résolu votre souci de doublon ...
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() |
J'ai a priori résolu les doublons .... donc est ce que c'est possible de faire ça en sql ?
|
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Essayez quelque chose du genre
Code :
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
||
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() |
désolé de te déranger de nouveau mais je ne pige pas ou je vais mettre ma sous requête :
Code :
SELECT city FROM T_HALL WHERE city_id IS NULL GROUP BY city ORDER BY city; |
|
|
00
|
|
|
#11 | ||
![]() ![]() |
Tu n'as pas besoin de sous-requête. La requête de Yanika_bzh peut être écrite avec les jointures normalisées de cette façon :
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#12 |
|
Nouveau Membre du Club
![]() |
ok merci
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com