2017-05-07 80 views
0

使用新的主數據管理產品,特別是人員匹配。 我有兩個表:Person和PersonMatch。 PersonMatch是一個連接表,它將Person中的行匹配到Person中的另一行。匹配實體 - 自我多對多

人:1,2,3,4(根據PersonMatch,這些都是一樣的人)。

PersonMatch:1 + 2,2 + 3,3 + 4,4 + 1

我不能換我的頭周圍的查詢從Person表一樣對待所有四個實體。謝謝你的幫助!

+0

他們不能......或者我們缺少信息。如果Person不是維度表,PersonMatch如何與Person關聯?再次詢問Person做什麼以及PersonMatch完成什麼。 –

+0

您需要提供更多關於我們數據結構的信息,或許您的目的 – hvanbrug

回答

0

這聽起來像你需要一個PersonUniqueId的特定列,並且所有Person實例都可以有自己的唯一ID來標識它們的區別,但它們每個都會共享相同的'PersonUniqueId',這反映他們真的是同一個人,只是有不同的或額外的後續信息。

如果你沒有使用PersonUniqueId,那麼你需要弄清楚每個記錄中哪些標識這兩個人是相同的,也許是名字,或其他任何東西。不知道更多關於您的整體結構很難說什麼是最好的方向,但希望這是一個開始。

這可能是PersonMatch表甚至不需要。或者,你可以把該表中的PersonUniqueId列,然後做一些事情,如:

SELECT p.* 
FROM Persons p, PersonMatch pm 
WHERE p.PersonId = pm.PersonId 
GROUP BY pm.PersonUniqueId 

希望這有助於。