是否返回超过1条记录?如果不是,则LS\u FOR不包含一个记录,该记录的监视者ID为您要查找的人员ID。如果是这样的话,您的子句或where子句将消除预期的结果……我不是MYSQL专家,我对连接一无所知。所以我很难改变你的疑问。我现在正在出错。我在我的问

是否返回超过1条记录?如果不是,则LS\u FOR不包含一个记录,该记录的监视者ID为您要查找的人员ID。如果是这样的话,您的子句或where子句将消除预期的结果……我不是MYSQL专家,我对连接一无所知。所以我很难改变你的疑问。我现在正在出错。我在我的问,mysql,group-by,sql-order-by,having,Mysql,Group By,Sql Order By,Having,是否返回超过1条记录?如果不是,则LS\u FOR不包含一个记录,该记录的监视者ID为您要查找的人员ID。如果是这样的话,您的子句或where子句将消除预期的结果……我不是MYSQL专家,我对连接一无所知。所以我很难改变你的疑问。我现在正在出错。我在我的问题中也添加了表结构。添加了我的表结构以便您了解一些情况。根据您的查询,我认为您正在匹配日期时间,但在我的情况下,我不需要匹配日期时间。我只需要从表的LS_获取Person_Id,然后根据这些Id,我需要检查位置半径并显示最佳结果。Person_




是否返回超过1条记录?如果不是,则LS\u FOR不包含一个记录,该记录的监视者ID为您要查找的人员ID。如果是这样的话,您的子句或where子句将消除预期的结果……我不是MYSQL专家,我对连接一无所知。所以我很难改变你的疑问。我现在正在出错。我在我的问题中也添加了表结构。添加了我的表结构以便您了解一些情况。根据您的查询,我认为您正在匹配日期时间,但在我的情况下,我不需要匹配日期时间。我只需要从表的LS_获取Person_Id,然后根据这些Id,我需要检查位置半径并显示最佳结果。Person_latLong表有多个条目供单个用户使用。为了获得最新的条目,我只是将person_latLong加入到其自身的子集中,其中只列出了最新的条目。对于限制,它对LS_的影响应为0。内部联接的性质可能是记录,而外部联接和内部联接只是关联记录。因此,通过加入personId和location_datetime上的子集,我们只从person_latLong(最近)处获得1条记录,我得到的是最新的条目,但不是所有的ID,它只给我1行。如果删除where子句,它会返回多条记录吗?如果不是,则LS\u FOR不包含一个记录,该记录的监视者ID为您要查找的人员ID。如果是这样的话,您的子句或where子句将消除预期的结果……我不是MYSQL专家,我对连接一无所知。所以我很难改变你的疑问。我现在正在出错。我在我的问题中也添加了表结构。添加了我的表结构以便您了解一些情况。根据您的查询,我认为您正在匹配日期时间,但在我的情况下,我不需要匹配日期时间。我只需要从表的LS_获取Person_Id,然后根据这些Id,我需要检查位置半径并显示最佳结果。Person_latLong表有多个条目供单个用户使用。为了获得最新的条目,我只是将person_latLong加入到其自身的子集中,其中只列出了最新的条目。对于限制,它对LS_的影响应为0。内部联接的性质可能是记录,而外部联接和内部联接只是关联记录。因此,通过加入personId和location_datetime上的子集,我们只从person_latLong(最近)处获得1条记录,我得到的是最新的条目,但不是所有的ID,它只给我1行。如果删除where子句,它会返回多条记录吗?如果不是,则LS\u FOR不包含一个记录,该记录的监视者ID为您要查找的人员ID。如果是这样的话,您的having子句或where子句正在消除预期的结果……您是否建议按照公认的答案使用左连接?(阅读一些关于大数据集和第二次响应的评论)我已经使用过了,它工作得很好,比子查询快得多。@charveesah我已经看到了答案,但正如我在问题中提到的,我不太了解DB,特别是连接。我在it方面没有任何知识,这就是我在这里寻求帮助的原因。在你提供的链接中,我无法获得所有内容,也无法尝试从中获得很多内容,但都失败了。在此之后,只有我在这里发布了问题。如果你能给我一些指导,那就太好了。我怀疑这个解决方案会比不相关的子查询更好。另外它是没有文档记录的(除非你计算手册中的注释部分)@Scorpion那么你想要什么呢?我写整个查询?你是否建议按照公认的答案使用左连接?(阅读一些关于大数据集和第二次响应的评论)我已经使用过了,它工作得很好,比子查询快得多。@charveesah我已经看到了答案,但正如我在问题中提到的,我不太了解DB,特别是连接。我在it方面没有任何知识,这就是我在这里寻求帮助的原因。在你提供的链接中,我无法获得所有内容,也无法尝试从中获得很多内容,但都失败了。在此之后,只有我在这里发布了问题。如果你能给我一些指导,那就太好了。我怀疑这个解决方案会比不相关的子查询更好。另外它是没有文档记录的(除非你计算手册中的注释部分)@Scorpion那么你想要什么呢?我写整个查询?你是否建议按照公认的答案使用左连接?(阅读一些关于大数据集和第二次响应的评论)我已经使用过了,它工作得很好,比子查询快得多。@charveesah我已经看到了答案,但正如我在问题中提到的,我不太了解DB,特别是连接。我在it方面没有任何知识,这就是我在这里寻求帮助的原因。在你提供的链接中,我无法获得所有内容,也无法尝试从中获得很多内容,但都失败了。在此之后,只有我在这里发布了问题。如果你能给我一些指导,那就太好了。我怀疑这个解决方案会比不相关的子查询更好。另外它是没有文档记录的(除非你计算手册中的注释部分)@Scorpion那么你想要什么呢?我写整个查询?你是否建议按照公认的答案使用左连接?(阅读一些关于大数据集和第二次响应的评论)我已经使用过了,它工作得很好,比子查询快得多。@charveesah我已经看到了答案,但正如我在问题中提到的,我不太了解DB,特别是连接。我在it方面没有任何知识,这就是我在这里寻求帮助的原因。在你提供的链接中,我无法获得所有内容,也无法尝试从中获得很多内容,但都失败了。在此之后,只有我在这里发布了问题。如果你能给我一些指导,那就太好了。我怀疑这个解决方案会比不相关的子查询更好。加上它是没有文件的(除非你把公司算在内)
Person_Id
Lat
Lng
Location_DateTime
10  23.030211421184454  72.55705489668806   2014-09-02 04:23:42
10  23.03029215373424   72.55710855670746   2014-09-02 04:25:09
10  23.030301667271765  72.55715279051745   2014-09-02 04:27:21
11  19.045563510415214  72.915665750359 2014-09-02 08:22:07
11  19.046567530190785  72.91524330185979   2014-09-02 08:32:36
11  19.04553070382594   72.91621148133476   2014-09-02 08:39:47
11  18.537267778519347  73.83538450865574   2014-09-03 01:44:19
11  18.33554237666039   73.85274219500492   2014-09-03 07:18:02
11  18.331919816746026  73.8525499279805    2014-09-03 07:18:59
11  18.33181875247372   73.85243149060277   2014-09-03 07:19:02
11  18.777939290860722  73.31834934181029   2014-09-04 22:07:31
11  18.790032969638293  73.30265963437363   2014-09-04 22:09:06
11  18.79108238318203   73.29928216416553   2014-09-04 22:09:22
11  18.800857529132163  73.28531940244517   2014-09-04 22:11:22
11  18.812675453346255  73.27794458217039   2014-09-04 22:13:26
11  18.82985965773455   73.25592224937081   2014-09-04 22:15:31
11  18.84531169311457   73.23344887176076   2014-09-04 22:17:49
11  18.869063931831764  73.2185512231118    2014-09-04 22:19:54
11  18.893204517796047  73.20479873759578   2014-09-04 22:22:03
11  18.910161939581506  73.18348844819505   2014-09-04 22:24:30
Subject_Id -> This is basically Person_Id but I have changed the name.
Watcher_Id
Assistance_Group_Id
1   10  1
1   11  1
1   17  1
SELECT *,( 6371 * acos( cos( radians(23.030) ) 
* cos( radians(Lat) ) * cos( radians(Lng) - radians(72.5570) )
 + sin( radians(23.030) ) * sin( radians(Lat) ) ) ) 
AS distance FROM Person_LatLong WHERE Person_Id IN 
(SELECT Watcher_Id FROM LS_For WHERE Subject_Id = 1 AND Assistance_Group_Id = 1)
HAVING distance < 5 ORDER BY Location_DateTime DESC;
10  23.030301667271765  72.55715279051745   2014-09-02 04:27:21 0.037008818510632306
10  23.03029215373424   72.55710855670746   2014-09-02 04:25:09 0.03433299317128307
10  23.030211421184454  72.55705489668806   2014-09-02 04:23:42 0.02417068347133403

11  23.030301667271765  72.55715279051745   2014-09-02 05:27:21 0.037008818510632306
11  23.03029215373424   72.55710855670746   2014-09-02 05:25:09 0.03433299317128307
11  23.030211421184454  72.55705489668806   2014-09-02 05:23:42 0.02417068347133403
SELECT *,( 6371 * acos( cos( radians(23.030) ) 
* cos( radians(Lat) ) * cos( radians(Lng) - radians(72.5570) )
 + sin( radians(23.030) ) * sin( radians(Lat) ) ) ) 
AS distance FROM Person_LatLong WHERE Person_Id IN 
(SELECT Watcher_Id FROM LS_For WHERE Subject_Id = 1 AND Assistance_Group_Id = 1)
GROUP BY Person_Id HAVING distance < 5 ORDER BY Location_DateTime DESC;
10  23.030211421184454  72.55705489668806   2014-09-02 04:23:42 0.02417068347133403
10  23.030301667271765  72.55715279051745   2014-09-02 04:27:21 0.037008818510632306
11  23.030301667271765  72.55715279051745   2014-09-02 05:27:21 0.037008818510632306
GROUP BY Person_I
LIMIT 1
GROUP BY Person_Id HAVING distance < 5 ORDER BY Location_DateTime DESC;
GROUP BY Person_Id HAVING distance < 5 ORDER BY Location_DateTime ASC;
(Select person_ID, max(`Location_DateTime`) mldt FROM person_LatLong group by Person_ID) 
SELECT a.Person_ID, a.LAT, a.LNG, a.`Location_DateTime`, 
 ( 6371 * acos( cos( radians(23.030) ) 
        * cos( radians(a.Lat) ) * cos( radians(a.Lng) - radians(72.5570) )
        + sin( radians(23.030) ) * sin( radians(a.Lat) ) ) ) AS Distance 
FROM Person_LatLong a
INNER JOIN (SELECT Person_ID, max(`Location_DateTime`) as mldt
            FROM Person_latLong 
            GROUP BY Person_ID) P
  on P.Person_ID = a.Person_Id
 and P.mldt = a.`Location_DateTime` 
LEFT JOIN LS_FOR C
 on a.Person_Id = C.Watcher_ID
  AND C.Subject_Id = 1 
  AND C.Assistance_Group_Id = 1
GROUP BY a.Person_ID, a.LAT, a.LNG, a.`Location_DateTime`
HAVING Distance < 5;
SELECT a.Person_ID, a.LAT, a.LNG, a.`Location_DateTime`, 
 ( 6371 * acos( cos( radians(23.030) ) 
        * cos( radians(a.Lat) ) * cos( radians(a.Lng) - radians(72.5570) )
        + sin( radians(23.030) ) * sin( radians(a.Lat) ) ) ) AS Distance 
FROM Person_LatLong a
INNER JOIN (SELECT Person_ID, max(`Location_DateTime`) as mldt
            FROM Person_latLong 
            GROUP BY Person_ID) P
  on P.Person_ID = a.Person_Id
 and P.mldt = a.`Location_DateTime` 
INNER JOIN LS_FOR C
 on a.Person_Id = C.Watcher_ID
WHERE C.Subject_Id = 1 
  AND C.Assistance_Group_Id = 1
GROUP BY a.Person_ID, a.LAT, a.LNG, a.`Location_DateTime`
HAVING Distance < 5;
   select person1.* from Person_LatLong person1 
    LEFT JOIN Person_LatLong person2 on person1.id = person2.id and 
   person1.dateTiem < person2.dateTime
    where person2.id IS NULL;
SELECT 
  *,( 6371 * acos( cos( radians(23.030) ) * cos( radians(Lat) ) * cos( radians(Lng) - radians(72.5570) ) + sin( radians(23.030) ) * sin( radians(Lat) ) ) ) AS distance
FROM 
  (select * from Person_LatLong ORDER BY Location_DateTime DESC) as t  
WHERE 
  Person_Id IN (SELECT Watcher_Id FROM LS_For WHERE Subject_Id = 1 AND Assistance_Group_Id = 1) 
GROUP BY 
  Person_Id 
HAVING 
  distance < 5 ;