Le 05/03/2012 22:25, Gilles Bassière a écrit :
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
Entretemps, j'était arrivé à çà:
SELECT
count(*)
FROM
planet_osm_line AS c
WHERE
c.osm_id not in (
SELECT b.osm_id
FROM
planet_osm_rels,
planet_osm_line AS b
WHERE
b.osm_id = ANY(planet_osm_rels.parts))
AND c."piste:type" IS NOT NULL
AND c.osm_id>0;
qui marche bien aussi, merci!
Yves
_______________________________________________
dev-fr mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/dev-fr