我想编写一个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/