query postgis

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

query postgis

claux
Salve a tutti vorrei prima chiedere una conferma e poi la relativa domanda.
Sto lavorando con un db postgres/postgis (8.3) eseguo una query di questo tipo:
 
SELECT *
FROM A, B
WHERE ST_INTERSECTS (A.THE_GEOM, B.THE_GEOM)
 
che secondo me dovrebbe corrispondere a fare un intersezione con il plugin di Geoprocessing (Qgis).
 
Se la mia ipotesi è giusta, la cosa che trovo strana è che la query impiega circa 20 minuti per restituirmi il risultato (le due tabelle sono piuttosto voluminose) mentre l'intersezione fatta da qgis ci mette un paio di minuti.
Sbaglio qualcosa?

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
Reply | Threaded
Open this post in threaded view
|

Re: query postgis

PJ Hooker
1) Ho ripreso questo post, perché odio fortemente fare nuovi topic e credo che il soggetto sia fondamentale in queste mailing list perché da la possibilità di riprenderli e ritrovarsi ogni volta argomenti che trattano solo di quel specifico argomento, come se fosse un capitolo di un libro.
2) ho cercato un po' e non ho trovato mailing list o forum che parlano in italiano di PostGIS e quindi mi sembra giusto contribuire alla creazione di questi contenuti; in caso abbiate suggerimenti comunicatelo.

arrivo al mio problema sto facendo una query del tipo:

SELECT cod_uni_e, tipo_af, n_piani, ST_Area(the_geom)
  FROM public.pg_edifici
  WHERE cod_uni_e = 906 or cod_uni_e = 493 or cod_uni_e = 1041 or cod_uni_e = 254 or cod_uni_e = 496 or cod_uni_e = 1475 or cod_uni_e = 181

ed in particolare vorrei non dover continuare a riscrivere  cod_uni_e = 001 or cod_uni_e = 002 or cod_uni_e = 003 perché so che c'è una soluzione del tipo cod_uni_e = (001,002,003) ma non conosco l'esatta sintassi. qualcuno mi potrebbe aiutare, grazie.
Reply | Threaded
Open this post in threaded view
|

Re: query postgis

Luca Sigfrido Percich

Ciao, prova con

... where cod_uni_e in (001,002,003)

funziona anche con una sottoselect:

... where cod_uni_e in (select cod_uni from miatabella where ...)

Sig

Il giorno mer, 30/11/2011 alle 04.08 -0800, PJ Hooker ha scritto:

> ed in particolare vorrei non dover continuare a riscrivere  cod_uni_e = 001
> or cod_uni_e = 002 or cod_uni_e = 003 perché so che c'è una soluzione del
> tipo cod_uni_e = (001,002,003) ma non conosco l'esatta sintassi. qualcuno mi
> potrebbe aiutare, grazie.

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: query postgis

PJ Hooker
OTTIMO!!!

SELECT cod_uni_e, tipo_af, n_piani, ST_Area(the_geom)
  FROM public.pg_edifici
  WHERE cod_uni_e in (906, 493, 1041, 254, 496, 1475, 181)

così funziona alla grande. Grazie!