我正在尝试从某个半径返回结果的搜索。我有第一步工作,但是当我尝试通过包含它停止工作的第二个表来扩展结果时。我不认为 UNION 是要走的路,但为了更好地解释我正在尝试做的事情,请输入它:
SELECT *, 3956 * 2 * ASIN(SQRT( POWER(SIN((48.4284207 -abs(dest.lat)) * pi()/180 / 2),2) + COS(48.4284207 * pi()/180 ) * COS( abs(dest.lat) * pi()/180) * POWER(SIN((-123.3656444 - dest.lng) * pi()/180 / 2), 2) ))
as distance
FROM business dest having distance < 10500 and
(businessName LIKE '%web%') ORDER BY distance
UNION
(
SELECT b.*
FROM business b, keywords k
WHERE k.keyword
LIKE '%web%' and b.businessID=k.businessID
)
第二个表有两列“关键字”,然后是第一个表中的业务 ID 的 fk。