我有两个表在不同的服务器上,我想帮助找到一种有效的方法来组合和匹配数据集。这里有一个例子:有效的方法来结合两个数据库查询的结果
从服务器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循环的数量,我们将不胜感激!
谢谢。
嗨 - 我同意,我必须在我的应用程序代码中执行此操作。我正在寻找在我的应用程序中最有效的方式。任何示例代码将不胜感激。 – ensnare 2010-05-11 05:21:29
在您的代码中执行此操作意味着您需要通过将组合数据写入第三个数据结构(例如字典)来比较结果集条目。这是非常具体的领域,你主要靠你自己担心。 – lexu 2010-05-11 05:29:37