gpt4 book ai didi

mysql - 提高mysql查询的准确性

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

是否有任何方法可以提高以下查询的准确性?

SELECT DISTINCT a.localgeo, a.foreigngeo, b.lat, b.lng, c.lat, c.lng
FROM tbl_correlateddata a
JOIN tbl_geodetail b ON a.localgeo = b.code
JOIN tbl_geodetail c ON a.foreigngeo = c.code

我正在访问一个包含 2 个国家/地区代码的表格

localgeo|foreigngeo
--------------------
JP |AD
JP |AD
US |HK
AD |JP
HK |US
AD |JP
CN |US

并尝试用另一个表中的经度和纬度值填充它

code|lat|lng
------------
JP |1 |2
US |3 |3
HK |1 |4
AD |3 |4
CN |4 |4

结果是这样的

localgeo|lat|lng|foreigngeo |lat|lng|
------------------------------------
JP |1 |2 |AD |3 |4
US |3 |3 |HK |1 |4
HK |1 |4 |US |3 |3
AD |3 |4 |JP |1 |2
CN |4 |4 |US |3 |3

但是查询需要很多时间。有什么办法可以加快速度吗?

最佳答案

问题是您对所有字段都使用了 distinct,您没有制作 (),这会花费很多时间。尝试只对一列使用 distinct

像这样

    SELECT DISTINCT (a.localgeo), a.foreigngeo, b.lat, b.lng, c.lat, c.lng
FROM tbl_correlateddata a
JOIN tbl_geodetail b
ON a.localgeo = b.code
JOIN tbl_geodetail c
ON a.foreigngeo = c.code

编辑:

     SELECT DISTINCT a,b,c FROM t

大致相当于:

     SELECT a,b,c FROM t GROUP BY a,b,c

所以你应该这样做

     SELECT a.localgeo, a.foreigngeo, b.lat, b.lng, c.lat, c.lng
FROM tbl_correlateddata a
JOIN tbl_geodetail b
ON a.localgeo = b.code
JOIN tbl_geodetail c
ON a.foreigngeo = c.code
GROUP BY a.localgeo ,a.foreigngeo

关于mysql - 提高mysql查询的准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13910455/

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