gpt4 book ai didi

mysql - 如何根据这些表中的纬度/经度(距离 10)将表 A 的多行与表 B 的多行进行匹配

转载 作者:行者123 更新时间:2023-11-29 12:29:09 25 4
gpt4 key购买 nike

    select tableA.*,tableB.*,
111.045* DEGREES(ACOS(COS(RADIANS(tableA.latitude)) * COS(RADIANS(tableB.latitude)) * COS(RADIANS(tableA.longitude) -
RADIANS(tableB.longitude)) + SIN(RADIANS(tableA.latitude)) * SIN(RADIANS(tableB.latitude)))) AS distance_in_km
from table A
join(select tableB.latitude,tableB.longitude from tableB)
on tableA.id = tableB.id HAVING distance <10

此查询正在工作,但它只获取表 A 中的第一行并将其与表 B 中的行进行比较。但我希望表 A 中的每一行经纬度/经度应与表 B 中的所有纬度/经度进行比较.

最佳答案

为了将 tableA 中的每一行与 tableB 中的每一行连接起来,您必须执行交叉连接,即

select tableA.*,tableB.*,
111.045* DEGREES(ACOS(COS(RADIANS(tableA.latitude)) * COS(RADIANS(tableB.latitude)) * COS(RADIANS(tableA.longitude) -
RADIANS(tableB.longitude)) + SIN(RADIANS(tableA.latitude)) * SIN(RADIANS(tableB.latitude)))) AS distance_in_km
from tableA
cross join tableB
HAVING distance <10

关于mysql - 如何根据这些表中的纬度/经度(距离 10)将表 A 的多行与表 B 的多行进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27858234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com