mysql POINT 数据类型上的左连接

标签 mysql join left-join spatial

我有两个表,每个表都有一个具有点(空间)数据类型的列,如下所示:

表1:

id            latlng
------------------------------
1     POINT(35.72036 51.42124)  
2     POINT(32.74446 53.42124)        
3     POINT(31.78676 51.44564)   
4     POINT(32.73436 54.42124)

表 2:

id            latlng
------------------------------
1     POINT(35.719 51.4221)   
2     POINT(35.72036 51.42124)        
3     POINT(32.74446 53.42124)   
4     POINT(31.78676 51.44564)    
5     POINT(32.73436 54.42124)                       
6     POINT(35.72379 51.4144) 

现在我想使用表 2 上的 LEFT JOIN 语句将这两个表连接在一起

我写了这个查询,但它返回 24 行!我应该是 6 行,如表 2 所示。

SELECT * FROM Table2 LEFT JOIN Table1 ON Table2.latlng = Table1.latlng

有什么办法可以解决这个问题并且只得到 6 行吗?

最佳答案

我想你忘记了GROUP BY

试试这个

 SELECT * FROM Table2 
 LEFT JOIN Table1 
 ON Table2.latlng = Table1.latlng
 GROUP BY Table2.id

关于mysql POINT 数据类型上的左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21612917/

相关文章:

mysql结合3个表来获取用户和被关注的用户的帖子

sql - 未显示所有左表值的左连接

SQL Oracle LEFT JOIN 和 SUBQUERY 错误 : ORA-00905: missing keyword

Python 警告 : Truncated incorrect DOUBLE value

php - 我重置了 xampp localhost 的密码,现在我无法访问 phpmyadmin

mysql - Django:由于没有 admin.py 而遇到麻烦

php - Mysql 从另一个表中选择 sum()

mysql查询将句子与字段中的关键字进行匹配

MySQL 连接表中连接列中有多个重复值

r - 是否有一个 R 函数可以根据分别匹配同一列的两列来合并两个数据框?