我正在使用MySQL 5.5.52 . 缩写:Lat =纬度,长=经度,NE =东北,SW =西南 .
我有两个SQL表:
第一个表包含“区域” . 每个区域由ID,NE Lat,NE Long,SW Lat,SW Long组成 .
第二个表包含“点” . 每个Point由ID,Lat,Long组成 .
我需要一个SQL语句,给定一个区域ID列表将返回这些区域中的点 . 如果Point的Lat-Long位于由Area的NE Lat-Long和SW Lat-Long定义的右上角和左下角的正方形内,则定义在Area中 .
注意:我可以将要定义的区域更改为具有半径的单个Lat-Long,其中Points位于'circles'内 . 但理想情况下我不想这样做,除非有更高效的SQL语句来解决这个问题 .
1 回答
根据点位置在区域范围内的条件加入两个表 .
给你每个区域和相应的点 .
如果需要,使用特定区域的where子句进一步参数化 .
只需用你喜欢的区域lat和long值替换@s .