gpt4 book ai didi

python - 合并两个数据库查询结果的有效方法

转载 作者:搜寻专家 更新时间:2023-10-30 23:23:29 25 4
gpt4 key购买 nike

我在不同的服务器上有两个表,我需要一些帮助来找到组合和匹配数据集的有效方法。这是一个例子:

从存放我们故事的服务器 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 循环数量的有效示例代码!

谢谢。

最佳答案

如果内存不是问题,您可以使用字典。

results1_dict = dict((row[0], list(row[1:])) for row in results1)
results2_dict = dict((row[0], list(row[1:])) for row in results2)

for key, value in results2_dict:
if key in results1_dict:
results1_dict[key].extend(value)
else:
results1_dict[key] = value

这不是特别有效 (n2),但它相对简单,您可以调整它以精确执行您需要的操作。

关于python - 合并两个数据库查询结果的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2808142/

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