一次两个选择查询python

时间:2016-10-11 01:11:16

标签: python mysql sql

我想计算两点之间的距离。对于一个表中的每个点,我必须计算与同一数据库中另一个表中所有其他点的距离。我正在使用python,但我无法一次执行两个查询。

import mysql.connector
from haversine import haversine

cnx = mysql.connector.connect(host='localhost',user='xxxxx',passwd='xxxxxx',db='xxxxxx')
cursor = cnx.cursor()
cursor2 = cnx.cursor()

query = ("select longitude,latitude from roadData limit 5")
cursor.execute(query)

query2=("SELECT geo_coordinates_latitude, geo_coordinates_longitude from tweetmelbourne limit 2")
cursor2.execute(query2)

for (longitude,latitude) in cursor:
    print longitude
    print latitude
    for (geo_coordinates_longitude,geo_coordinates_latitude) in cursor2:
        print geo_coordinates_longitude
        print geo_coordinates_latitude


cursor.close()
cnx.close() 

但是,我在第二次查询执行时遇到错误

  

InternalError:找到未读结果。

我为游标尝试了buffer = true但仍然是同样的错误。 这样或任何其他更好的方式也是有效的。

1 个答案:

答案 0 :(得分:0)

您可以在这里使用的一个技巧是将两个表交叉连接在一起:

ID

这应该有效,因为迭代Python代码中的结果集的方式类似于交叉连接。在这种情况下,使用上面的查询,您只需要在整个结果集上迭代一次。