我有兩個表在不同的服務器上,我想幫助找到一種有效的方法來組合和匹配數據集。這裏有一個例子:有效的方法來結合兩個數據庫查詢的結果
從服務器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