SELECT r.osm_id FROM osm_roads r, osm_places p WHERE p.name = 'Hometown' AND ST_Intersects(p.way, r.way); If you want only streets that are completely contained within the places polygon replace [ST_Intersects][1] with [ST_Contains][2]. Order matters to ST_Contains, it returns all geometries from the 2nd layer that are completely contained by the 1st. A third way to get your answer is with [ST_DWithin][3]. It will return true if the two geometries are within a specified distance of each other, the distance will be in the units of the coordinate system the two layers use. Since most of the time Open Street Map data is imported in the "Google Mercator" projection (for me anyway) most likely your units will be meters. Also, for me, the geometry field in my Open Street Map data is called way, it might be different for you depending on the tool you used to import the data. [1]: http://www.postgis.org/docs/ST_Intersects.html [2]: http://postgis.org/docs/ST_Contains.html [3]: http://postgis.org/docs/ST_DWithin.html