gpt4 book ai didi

python - 比较两个名字和姓氏列表以找到匹配项

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:09 25 4
gpt4 key购买 nike

我目前在 SQL Server 中有两个表:具有 40,000 条记录的 TableA 和具有 210 万条记录的 TableB。
每个表有 3 列:RowID、First_Name 和 Last_Name。

我目前正在从 TableA 的第一行中获取名字和姓氏,并将其与 TableB 中每一行中的名字和姓氏进行比较,直到找到匹配项。但是,如您所想,我的计算机没有足够/强大的资源来完成此任务。它会运行几个小时,然后 SQL Server 就会崩溃,而且它不会保存任何已经完成的工作。我考虑过只允许循环运行一定数量的记录,然后从那里重新启动循环,这样我就可以在 SQL 崩溃之前保留一些数据,但这将永远持续下去。

我正在寻找其他程序或语言的建议来解决这个问题。与此同时,我将继续尝试完善我的 SQL 查询以加快此过程,例如仅比较具有相同首字母的记录。我不太了解其他程序或语言,所以我愿意尝试 SQL Server 以外的东西。我不知道是否有一种语言比 SQL Server 在资源方面或在“超时”方面更好。我对 Linux 了解很多,所以如果有什么东西可以让我利用 Linux 与 Windows 8 相比节省一些资源,我肯定会接受。我不知道像 Python、Linux 版本的 SQL 等是否会更好?

感谢您的帮助,感谢您抽出宝贵时间!

编辑 ----- 这是我正在运行的查询的简单版本。

DECLARE TableANameF     ,TableANameL
,TableBNameF ,TableBNameL
,TableARowIndex ,TableBRowIndex
,TableARowCount ,TableBRowCount
,NameFDifference ,NameLDifference

SET TableARowIndex = 1

SELECT TableARowCount = COUNT(RowID)
FROM TableA

WHILE (TableARowIndex <= TableARowCount)
SELECT TableANameF = FIRST_Name
,TableANameL = LAST_Name
FROM TableA
WHERE RowID = TableARowIndex

SET TableBRowIndex = 1

SELECT TableBRowCount = COUNT(RowID)
FROM TableB

WHILE (TableBRowIndex <= TableBRowCount)
SELECT TableBNameF = FIRST_Name
,TableBNameL = LAST_Name
FROM TableB
WHERE RowID = TableBRowIndex

SET NameFDifference = DIFFERENCE(TableANameF, TableBNameF)
SET NameLDifference = DIFFERENCE(TableANameL, TableBNameL)

IF (NameFDifference > 3 AND NameLDifference > 3)
--INSERT INTO ANOTHER TABLE TO TRACK MY MATCHES
--INCREMENT TableBRowIndex
--END TABLE B WHILE LOOP
--INCREMENT TableARowIndex
END

最佳答案

我认为你只需要索引:

create index idx_tablea_firstname_lastname on tablea(firstname, lastname);
create index idx_tableb_firstname_lastname on tableb(firstname, lastname);

我不确定你到底想得到什么,但你应该在数据库中进行查询而不是循环:

select a.*, b.rowid
from tablea a join
tableb b
on a.firstname = b.firstname and a.lastname = b.lastname;

SQL 是解决此问题的正确语言/工具。您只需要让数据库完成工作即可。

关于python - 比较两个名字和姓氏列表以找到匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33136918/

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