>我有 2 个这样的表。
Table1
FullName LastName FirstName
John Smith Smith John
Table2
LastName Firstname AKA
Smith Stein Johnny John the Bad Guy
我需要找到table2
中table1
lastname
和firstname
的任何变化。但是,我无法加入表,因为名称可能不同,因此没有什么可连接的。基本上,我正在尝试将我们的列表与公共列表进行比较,以查看是否有任何名称匹配。
我正在尝试这个:
Select *
from table1
where exists (select *
from table2
where charindex(table1.lastname, table2.lastname)>0
and charindex(table1.firstname,table2.firstname)>0)
我得到了返回的值,但我也想查看 table2 中的值。
我需要看到约翰史密斯回来并显示约翰史密斯斯坦在另一个表中被标记。姓氏的这种变体也适用于名字。这就是为什么我不能加入任何 1 个特定列的原因。
抱歉,如果这令人困惑。
在您的示例中,您正在检查名称之间的完全匹配,那么为什么不加入它们呢?
SELECT t1.*, t2.*
FROM table1 t1
JOIN table2 t2 on t2.firstname = t1.firstname
and t2.lastname = t2.lastname
不确定"相似"名称的规则是什么,但您可以尝试这样的事情:
SELECT t1.*, t2.*
FROM table1 t1
JOIN table2 t2 on
t1.lastname = t2.lastname or t1.lastname=t2.aka or whatever other rules you want to set up