You don't give any information about your tables. Assuming the point isn't in a table and venues has fields id, radius, geom... select venue.id from venue where st_dwithin( st_geographyfromtext( 'POINT(' || venues.longitude || ' ' || venues.latitude || ')'), 'POINT(0 0)'::geography, venues.radius) This goes through the venues table and - reads the point geometry stored for the venue in venues.geom, - and tests whether the POINT(0 0) is within venues.radius meters from the venue. It returns the venue.id if they intersect. There might be a more elegant way to construct the geography from the long/lat. I recommend playing with SpatiaLite to learn about the basic geometry operations. It's easier to set up and get going than PostGIS. They have [a nice tutorial][1], too. Most of the functions are the same if only named differently. [1]: http://www.gaia-gis.it/spatialite/spatialite-tutorial-2.3.1.html