Table private inherits id's from table public. I'm trying to select entries in public within some distance of $lat,$lng whose id's are not found in private.
SELECT a.id, a.data, a.lat, a.lng,
(a_distance_function(a.lat,a.lng,$lat,$lng)) as a.distance
FROM public a
WHERE (a.lng BETWEEN $lng1 AND $lng2) AND (a.lat BETWEEN $lat1 AND $lat2)
HAVING a.distance < $dist
LEFT JOIN private b ON a.id = b.id
WHERE b.id is NULL;
But the MariaDB error isn't much help to me. Syntax error near '.distance FROM USMAP a WHERE a.lng BETWEEN -xx.xxx AND -xx.xxx'
JOIN
's must occur before adding any conditions to your query:
SELECT a.id, a.data, a.lat, a.lng,(a_distance_function(a.lat,a.lng,$lat,$lng)) as a.distance
FROM public a
LEFT JOIN private b
ON a.id = b.id
WHERE b.id is NULL
AND a.lng BETWEEN $lng1 AND $lng2
AND a.lat BETWEEN $lat1 AND $lat2
HAVING a.distance < $dist