#1 Fri 05 June 2009 14:52
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
ORA-01427 sur une requête update
Aloha
J'ai une table R_VOIE dans laquelle je trouve toutes les infos importantes de mes voies, une table R_TRONCO avec la géométrie de mes tronçons de voie et une table R_TRONCO_RELATION qui me sert à relier les deux (R_VOIE 1-n R_TRONCO_RELATION 1-1 R_TRONCO).
Je cherche à mettre à jour un champ de R_TRONCO avec R_VOIE :
Code:
UPDATE A_REIMS.R_TRONCO R_TRONCO SET "code_riv" = (SELECT R_VOIE.CODRUE FROM ( A_REIMS.R_TRONCO_RELATION R_TRONCO_RELATION INNER JOIN A_REIMS.R_VOIE R_VOIE ON (R_TRONCO_RELATION.GID_A = R_VOIE.GID)) INNER JOIN --A_REIMS.R_TRONCO R_TRONCO ON (R_TRONCO_RELATION.GID_D = R_TRONCO.GID) WHERE (R_TRONCO_RELATION.CLASS = 'R_VOIE')) -- AND (R_TRONCO."code_riv" != R_VOIE.CODRUE)) WHERE R_TRONCO.GID IN (SELECT R_TRONCO.GID FROM ( A_REIMS.R_TRONCO_RELATION R_TRONCO_RELATION INNER JOIN A_REIMS.R_VOIE R_VOIE ON (R_TRONCO_RELATION.GID_A = R_VOIE.GID)) INNER JOIN A_REIMS.R_TRONCO R_TRONCO ON (R_TRONCO_RELATION.GID_D = R_TRONCO.GID) WHERE (R_TRONCO_RELATION.CLASS = 'R_VOIE') AND R_TRONCO."code_riv" IN ('172', '584', '105', '055', '9999'))
Mais mon premier select renvoie plusieurs ligne, mais une seule par R_TRONC.GID. Comment lui expliquer laquelle prendre ?
D'avance, merci, merci beaucoup.
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#2 Fri 05 June 2009 15:14
Re: ORA-01427 sur une requête update
Bonjour,
Si ta relation entre les deux tables est bien R_VOIE 1-n R_TRONCO_RELATION, pourquoi utiliser un INNER JOIN ce qui risque de multiplier les lignes ?
Je me trompe ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Fri 05 June 2009 15:29
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: ORA-01427 sur une requête update
En tous les cas les lignes ne sont pas multipliées.
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#4 Tue 09 June 2009 15:40
Re: ORA-01427 sur une requête update
Bonjour,
À priori il n'est pas possible de faire ce genre de chose sous postgresql. Je vient d'avoir une problématique assez similaire
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne