我想编写一个SQL查询,该查询为所有具有另一个用户的相同用户的姓氏和相同的RIGHT后四个SSN的所有用户提供user_id,last_name和Social_security_number。因此,如果一个具有完整的SSN,而另一个只有最后四个,则我只想匹配最后四个。如何编写查询以使所有用户拥有多于1条记录?

最佳答案

SELECT orig.user_id, orig.last_name, orig.Social_security_number,
    dupe.user_id, dupe.last_name, dupe.Social_Security_number
FROM yourtable AS orig
INNER JOIN yourtable AS dupe ON
    (orig.last_name=dupe.last_name) AND
    (RIGHT(orig.Social_Security_number, 4) = RIGHT(dupe.Social_Security_Number, 4)) AND
    (orig.user_id <> dupe.user_id)


基本上,您可以在要存储该表的任何表上进行自联接,并在姓氏字段,SSN的后4位数字和一个边沿情况下联接:由于您是自我联接,因此每个记录在“重复”表,因此明确排除该假匹配。

关于mysql - 如何根据SSN获取重复记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7837527/

10-13 01:02