我有两个表,每个表都有一个具有点(空间)数据类型的列,如下所示:
表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/