Я хочу рассчитать расстояние между двумя точками. Для этого для каждой точки в одной таблице я должен рассчитать расстояние со всей другой точкой в другой таблице в той же базе данных. Я использую python для этого, но я не могу выполнить два запроса за раз.Два запроса select за раз 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: Unread result found.
Я попытался буферами = True для курсора, но все еще такой же ошибки. А также эффективно делать это или любой другой лучший способ.
Привет Тим Я получаю то, что вы говорите, но у меня есть 4 Gb данных, поэтому CrOSS Join не выгоден, и он медленный. Если я делаю поровну, я не могу сохранить результат на ходу. Для перекрестного соединения сначала нужно сопоставить, а затем вычислить. –
Метод, используемый для подключения двух таблиц в SQL, - это объединение (ну, также объединение, но не будет работать здесь). Если вы не можете присоединиться, и ваш текущий метод не будет работать, то какие варианты вы оставили? –
Я хочу получить данные о ролле, а затем выполнить rooved cross join со всеми записями другой таблицы и фильтрацией, основанной на сохранении состояния расстояния в другой таблице. –