我有兩個來自兩個不同數據庫的表格,它們都包含lastName
和firstName
列。我需要創建兩個之間的關係JOIN
。 lastName
列與80%的時間匹配,而firstName
列僅匹配大約20%的時間。並且每個表具有完全不同的personID
主鍵。具有相似列但主鍵不同的兩個表格
一般來說,當我向其中一個表中添加一個外鍵時,會使用哪些「最佳實踐」和/或提示?由於我有大約4,000個不同的人,所以不勝感激任何節省勞力的小費。
樣品不匹配的數據:
db1.table1_____________________ db2.table2_____________________
23 Williams Fritz 98 Williams Frederick
25 Wilson-Smith James 12 Smith James Wilson
26 Winston Trudy 73 Winston Gertrude
請記住:有時嚴絲合縫,往往他們不這樣做,有時候兩個不同的人都會有相同的第一/姓氏。
樣本數據之間沒有直接關係 - 是否應該導致「加入」? –
這顯示了不匹配數據的最壞情況示例。但是,下面的優秀答案准確地反映瞭如何首先通過固體匹配,然後處理不匹配以及重複數據。是的,還有其他的領域將會有所幫助,比如美國是這個人的國家。我也會嘗試一些小的子串和正則表達式函數;如lastName加firstInitial。再次感謝! – KiloVoltaire
@KiloVoltaire我想提出一點不同的可能性來獲得部分匹配的行 - 如果你有多個列(你說狀態),那麼你可以加入「匹配列的數量L - 說你只有3 - 第一個/最後一個名字和狀態,並且你可以寫在任何兩個匹配的球員都會這樣做,所以同樣的首先和狀態,相同的最後和狀態等等。更多的列你有更好的結果你得到,只有你需要得到正確的門檻(7中的4個將返回多於7箇中的6個)並且還可以計算字符串差異的分數(可能爲Levenshtein距離)。 – jkavalik