1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| $tout = $db->query("SELECT parcelle.label,
st_collect(plu.geom ORDER BY plu.libelle) ,
string_agg(DISTINCT plu.libelle, ',' ORDER BY plu.libelle) AS plu_libelle,
st_collect(plu.geom ORDER BY plu.typezone) ,
string_agg(DISTINCT plu.typezone, ',' ORDER BY plu.typezone) AS plu_typezone,
st_collect(plu.geom ORDER BY plu.libelong),
string_agg(DISTINCT plu.libelong, ',' ORDER BY plu.libelong) AS plu_libelong,
st_collect(pscsurf.geom ORDER BY pscsurf.libelle) ,
string_agg(DISTINCT pscsurf.typepsc, ',' ORDER BY pscsurf.typepsc) AS psc_surf_typepsc,
string_agg(DISTINCT pscsurf.libelle, ',' ORDER BY pscsurf.libelle) AS psc_surf_libelle,
string_agg(DISTINCT pscsurf.txt, ',' ORDER BY pscsurf.txt) AS psc_surf_txt,
st_collect(psclin.geom ORDER BY psclin.libelle),
string_agg(DISTINCT psclin.typepsc, ',' ORDER BY psclin.typepsc) AS psc_lin_typepsc,
string_agg(DISTINCT psclin.libelle, ',' ORDER BY psclin.libelle) AS psc_lin_libelle,
string_agg(DISTINCT psclin.txt, ',' ORDER BY psclin.txt) AS psc_lin_txt,
st_collect(pscpct.geom ORDER BY pscpct.libelle),
string_agg(DISTINCT pscpct.typepsc, ',' ORDER BY pscpct.typepsc) AS psc_pct_typepsc,
string_agg(DISTINCT pscpct.libelle, ',' ORDER BY pscpct.libelle) AS psc_pct_libelle,
string_agg(DISTINCT pscpct.txt, ',' ORDER BY pscpct.txt) AS psc_pct_txt
FROM plu.parcelle AS parcelle
JOIN plu.zones_plu AS plu ON ST_Intersects(ST_BUFFER(parcelle.geom,-1), plu.geom)
LEFT JOIN plu.psc_surf AS pscsurf ON ST_Intersects (ST_BUFFER(parcelle.geom,-1), pscsurf.geom)
LEFT JOIN plu.psc_lin AS psclin ON ST_Intersects (ST_BUFFER(parcelle.geom,-1), psclin.geom)
LEFT JOIN plu.psc_pct AS pscpct ON ST_Intersects (ST_BUFFER(parcelle.geom,-1), pscpct.geom)
GROUP BY parcelle.label
HAVING parcelle.label = '" . $id . "'
"); |