我在不同的服务器上有两个表,我需要一些帮助来找到一种有效的方法来组合和匹配数据集。这是一个例子:
从保存我们故事的服务器 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'
但是,我想从服务器 2 中获取有关每个 author_id 的一些信息:
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 循环数量的有效示例代码将不胜感激!
谢谢。