Le lundi 05 mars 2012 à 21:59 +0100, yvecai a écrit :
> Alors il me semble que j'arrive à trouver les way qui appartiennent à
> des relations:
>         pistes-mapnik=# SELECT
>             count(b.osm_id)
>         FROM
>             planet_osm_rels,
>             planet_osm_line AS b
>         WHERE
>             b.osm_id = ANY(planet_osm_rels.parts)
>             AND b."piste:type" IS NOT NULL 
>             AND b.osm_id>0;
>          count 
>         -------
>          11098
>         (1 row)
> Mais pas l'inverse:
>         pistes-mapnik=# SELECT
>             count(b.osm_id)
>         FROM
>             planet_osm_rels,
>             planet_osm_line AS b
>         WHERE
>             b.osm_id = ANY(planet_osm_rels.parts)
>             AND b."piste:type" IS NOT NULL 
>             AND b.osm_id>0;
>           count   
>         ----------
>          75773488
>         (1 row)
> C'est un peu beaucoup puisque je n'ai que 51'026 ways ... ??
> 
> Yves

Bonsoir,

Tu dois pouvoir arriver à tes fins avec exists() :

   SELECT count(*)
   FROM planet_osm_line AS l
   WHERE
      NOT EXISTS (
         SELECT *
         FROM planet_osm_rels AS r
         WHERE l.osm_id = ANY(r.parts)
      )
      AND l."piste:type" IS NOT NULL
      AND l.osm_id > 0;

Dans le cas particulier des tableaux, il y a peut-être plus direct mais
je n'ai pas l'habitude de manipuler ces types de données.

Cordialement
-- 
Gilles Bassière - Web/GIS software engineer
http://gbassiere.free.fr/



_______________________________________________
dev-fr mailing list
dev-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev-fr

Répondre à