У меня две таблицы на разных серверах, и мне нужна помощь в поиске эффективного способа объединения и сопоставления наборов данных. Вот пример:
С сервера 1, на котором хранятся наши истории, я выполняю запрос вроде:
query = """SELECT author_id, title, text
FROM stories
ORDER BY timestamp_created DESC
LIMIT 10
"""
results = DB.getAll(query)
for i in range(len(results)):
#Build a string of author_ids, e.g. '1314,4134,2624,2342'
Но я хотел бы получить некоторую информацию о каждом author_id с сервера 2:
query = """SELECT id, avatar_url
FROM members
WHERE id IN (%s)
"""
values = (uid_list)
results = DB.getAll(query, values)
Теперь мне нужен какой-то способ объединить эти два запроса, чтобы у меня был дикт, содержащий историю, а также avatar_url и member_id.
Если бы эти данные были на одном сервере, это было бы простое объединение, которое выглядело бы так:
SELECT *
FROM members, stories
WHERE members.id = stories.author_id
Но поскольку мы храним данные на нескольких серверах, это невозможно.
Какой самый эффективный способ сделать это? Я понимаю, что слияние, вероятно, должно произойти в моем коде приложения ... любой эффективный пример кода, который минимизирует количество циклов dict, будет очень полезен!
Спасибо.