左边排除JOIN的麻烦

时间:2016-01-26 21:53:24

标签: php mysql mysqli

表私有从表public继承id。我试图在$ lat,$ lng的某个距离内公开选择条目,而这些条目的ID不是私下的。

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;

但MariaDB错误对我没什么帮助。语法错误在&#39; .distance附近USMAP a WHERE a.lng BETWEEN -xx.xxx AND -xx.xxx&#39;

1 个答案:

答案 0 :(得分:3)

在向查询添加任何条件之前必须发生

JOIN

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