mysql - 如何根据 SSN 获取重复记录

标签 mysql

我想编写一个 SQL 查询,为所有用户提供 user_id、last_name 和 Social_security_number,这些用户的另一个用户具有相同的姓氏和相同的 SSN 最后四位 RIGHT。所以如果一个有完整的 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/

相关文章:

php - SQL语句存储在单独的文件夹中

mysql - ExpressJS 时间戳时区

MySQL 全文搜索。获取所有记录

php - 单个数组中的多个 mysql 查询结果

mysql - 从不同表中减去时间戳

php - UTF-8 解码变音符号偶尔会失败

php - 来自更多位置的 "Remember me"

php - 在 php-activerecord 中使用 `query()` 方法的查询在迁移时是否有效?

php - 使 MySQL 查询对于数据库插入是安全的(字符串)

php - 为什么这个表格不起作用?