我有一个表,其中有很多表:
company
id | name
---------
1 | a
2 | b
3 | c
company_address
id | company_id | latitude | longitude |
-------------------------------------------------------
1 | 1|0.9684982117632206|1.1395506188216191|
2 | 1|0.7874478257111129|0.6816976456543681|
3 | 2|0.9758854923552117| 0.744264348306201|
4 | 2|0.7860300249465478|0.6804121583003967|
5 | 2|0.7874478257111129|0.6816976456543681|
6 | 3|0.9684982117632206|1.1395506188216191|
sql_attr_multi
不支持浮点类型字段,sql_joined_field
被删除。我怎么解决这个问题?除了GROUP_CONCAT()之外,也许还有其他解决方案吗?
我认为,最简单的方法是将狮身人面像的“文件”安排为地址,而不是严格地陪伴。即,唯一的文档ID是地址表ID。 company_address.id
将公司ID保留为属性,因此,如果IF组实际上只希望每个公司获得一个结果。
sql_query = SELECT a.*, c.name FROM company_address a INNER JOIN company c ON (c.id = company_id)
sql_attr_uint = company_id
sql_attr_flaot = latitude
sql_attr_float = longitude
Ten GEODIST
将几乎直接起作用。...
SELECT *, GEODIST(0.659298124, -2.136602399, latitude, longitude) AS distance
FROM addressIndex WHERE distance < 10000 GROUP BY company_id;
或者如果要每个公司地址,请不要包含GROUP BY
。
公司名称仍作为全文搜索字段包含在内。