<div dir="ltr"><div><div>Ciao Sandro e Andrea,<br><br></div>allora ho provato e direi che ora la situazione è questa.<br><br></div>La select suggerita da Sandro è ok e funziona ..... <br><div><br>SELECT<br>
    lc1.lc_name AS "Tuscan Local Council",<br>
    c1.county_name AS "Tuscan County",<br>
    lc2.lc_name AS "Neighbour LC",<br>
    c2.county_name AS County,<br>
    r2.region_name AS Region<br>
FROM<br>
    local_councils AS lc1,<br>
    local_councils AS lc2<br>
    JOIN counties AS c1 ON (c1.county_id = lc1.county_id)<br>
    JOIN counties AS c2 ON (c2.county_id = lc2.county_id)<br>
    JOIN regions AS r1 ON (r1.region_id = c1.region_id)<br>
    JOIN regions AS r2 ON (r2.region_id = c2.region_id)<br>
WHERE<br>
    r1.region_name LIKE 'toscana'<br>
    AND r1.region_id <> r2.region_id<br>
    AND ST_Touches(lc1.geometry, lc2.geometry)<br>
    AND lc2.ROWID IN (<br>
        SELECT ROWID FROM SpatialIndex<br>
        WHERE f_table_name='DB=main.local_councils' AND search_frame=lc1.geometry<div id=":g4"><div class="im">
    )<br>
ORDER BY c1.county_name, lc1.lc_name;<br><br></div><div class="im">La select di Andrea aveva qualche piccolo errore che mi sembra ora di aver corretto e quindi la versione definitiva è la seguente:<br><br>select<br>    z."Tuscan Local Council",<br>
    z."Tuscan County",<br>    z."Neighbour LC",<br>    z.County,<br>    z.Region,<br>    z.geometry<br>from<br>    (<br>        SELECT<br>            lc1.lc_name AS "Tuscan Local Council",<br>
            c1.county_name AS "Tuscan County",<br>            lc2.lc_name AS "Neighbour LC",<br>            c2.county_name AS County,<br>            r2.region_name AS Region,<br>            lc1.geometry AS geometry<br>
        FROM<br>            local_councils AS lc1,<br>            local_councils AS lc2<br>            JOIN counties AS c1 ON (c1.county_id = lc1.county_id)<br>            JOIN counties AS c2 ON (c2.county_id = lc2.county_id)<br>
            JOIN regions AS r1 ON (r1.region_id = c1.region_id)<br>            JOIN regions AS r2 ON (r2.region_id = c2.region_id)<br>        WHERE<br>            r1.region_name LIKE 'toscana'<br>            AND r1.region_id <> r2.region_id<br>
            AND ST_Touches(lc1.geometry, lc2.geometry)<br>            AND lc2.ROWID IN (<br>                SELECT ROWID FROM SpatialIndex<br>                WHERE f_table_name='DB=main.local_councils' AND search_frame=lc1.geometry<br>
            )<br>    ) as z<br>ORDER BY z."Tuscan County", z."Neighbour LC";<br><br></div><div class="im">Grazie mille per il sollecito supporto<br><br>Cesare<br></div></div><br><br><br></div></div><div class="gmail_extra">
<br clear="all"><div>Cesare Gerbino<br><br><a href="http://cesaregerbino.wordpress.com/" target="_blank">http://cesaregerbino.wordpress.com/</a><br><a href="http://www.facebook.com/cesare.gerbino" target="_blank">http://www.facebook.com/cesare.gerbino</a><br>
<a href="http://www.facebook.com/pages/Cesare-Gerbino-GIS-Blog/246234455498174?ref=hl" target="_blank">http://www.facebook.com/pages/Cesare-Gerbino-GIS-Blog/246234455498174?ref=hl</a><br><a href="https://twitter.com/CesareGerbino" target="_blank">https://twitter.com/CesareGerbino</a><br>
<a href="http://www.linkedin.com/pub/cesare-gerbino/56/494/77b" target="_blank">http://www.linkedin.com/pub/cesare-gerbino/56/494/77b</a><br><br></div>
<br><br><div class="gmail_quote">Il giorno 05 gennaio 2014 13:15, aperi2007 <span dir="ltr"><<a href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Alessandro,<br>
grazie per la correzione.<br>
L'errore causava una errata dichiarazione di tabelle che in spatialite equivale a d avere sempre risultato vuoto.<div class="im"><br>
<br>
se si riscrive la query semplicemente omettendo del tutto la<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
ORDER BY si scopre invece che la query torna a funzionare a tutta<br>
manetta (proprio come avveniva con le vecchie versioni di sqlite).<br>
tempi oggettivi misurati:<br>
<br>
  con ORDER BY: circa 3 minuti<br>
senza ORDER BY: poco meno di 10 secondi :-D <br>
</blockquote>
<br></div>
organizzandola con una subquery che esegua il lavoro spaziale e una query che esegue solamente l'ordinamento,<br>
il query planner non dovrebbe far eseguire l'ordinamento prima del filtraggio con l'indice spaziale.<br>
<br>
select<br>
    z."Tuscan Local Council",<br>
    z."Tuscan County",<br>
    z."Neighbour LC",<br>
    z.County,<br>
    z.Region,<br>
    z.geometry<br>
from<div class="im"><br>
    (<br>
        SELECT<br>
            lc1.lc_name AS "Tuscan Local Council",<br>
            c1.county_name AS "Tuscan County",<br>
            lc2.lc_name AS "Neighbour LC",<br>
            c2.county_name AS County,<br>
            r2.region_name AS Region<br>
        FROM<br>
            local_councils AS lc1,<br>
            local_councils AS lc2<br>
            JOIN counties AS c1 ON (c1.county_id = lc1.county_id)<br>
            JOIN counties AS c2 ON (c2.county_id = lc2.county_id)<br>
            JOIN regions AS r1 ON (r1.region_id = c1.region_id)<br>
            JOIN regions AS r2 ON (r2.region_id = c2.region_id)<br>
        WHERE<br>
            r1.region_name LIKE 'toscana'<br>
            AND r1.region_id <> r2.region_id<br>
            AND ST_Touches(lc1.geometry, lc2.geometry)<br>
            AND lc2.ROWID IN (<br>
                SELECT ROWID FROM SpatialIndex<br>
                WHERE f_table_name='DB=main.local_<u></u>councils' AND search_frame=lc1.geometry<br>
            )<br></div>
    ) as z<br>
ORDER BY z.county_name, z.lc_name;<br>
<br>
Andrea.<div class="HOEnZb"><div class="h5"><br>
<br>
______________________________<u></u>_________________<br>
<a href="mailto:Gfoss@lists.gfoss.it" target="_blank">Gfoss@lists.gfoss.it</a><br>
<a href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss" target="_blank">http://lists.gfoss.it/cgi-bin/<u></u>mailman/listinfo/gfoss</a><br>
Questa e' una lista di discussione pubblica aperta a tutti.<br>
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.<br>
666 iscritti al 22.7.2013</div></div></blockquote></div><br></div>