在Python中实现Merge-Join

2024-04-20 00:29:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我熟悉SQL中的JOIN操作,但我并不真正理解它们在内部是如何工作的。在

我的任务是在Python中实现merge\u-join函数。我已经正确实现了嵌套循环联接:

def nested_loop_join(self, outer, outer_join_index, inner, inner_join_index):
    inner_list = list(inner)
    for outer_row in outer:
        for inner_row in inner_list:
            if outer_row[outer_join_index] == inner_row[inner_join_index]:
                yield outer_row + inner_row

我的合并加入是:

^{pr2}$

但似乎没用。 根据我的理解,merge join不应该就像将内部表附加到外部表一样吗?我做错什么了?在


Tags: 函数inforsqlindexdefmergelist
1条回答
网友
1楼 · 发布于 2024-04-20 00:29:18

假设您引用的是名为merge join的算法,而不是名为merge的SQL命令(后者同时执行插入和更新)。在

合并算法采用两个已排序记录的合并列表。当键相同时,它生成值与两个记录的笛卡尔积。如果一个输入的键值不在另一个输入中,则该键值不在输出中。在

我不打算编写这样做的Python代码。但是,如果您了解该算法的作用,那么将其转换为Python应该非常简单。在

相关问题 更多 >