【发布时间】:2014-03-18 19:04:42
【问题描述】:
我正在尝试查找表中在多个字段中具有重复数据的所有记录,并返回这些重复记录的所有字段。我在这个网站上研究了这个问题并发现了类似的问题,但似乎没有一个能解决我的特定问题。
例如,这些将是重复记录:
名字姓氏状态
加利福尼亚州鲍勃·琼斯
加利福尼亚州鲍勃·琼斯
虽然这些不是:
名字姓氏状态
加利福尼亚州鲍勃·琼斯
鲍勃·琼斯公司
也不是这些:
名字姓氏状态
加利福尼亚州鲍勃·琼斯
加利福尼亚州鲍勃·史密斯
也不是这些:
名字姓氏状态
加利福尼亚州鲍勃·琼斯
加利福尼亚州吉姆琼斯
如果我显示我尝试过的 MySQL 语句可能会更容易:
SELECT *
FROM table_1
WHERE
gy >= 2 AND arc = '' AND
first_name IN (
SELECT first_name FROM table_1
GROUP BY first_name HAVING count(first_name) >1
) AND
last_name IN (
SELECT last_name FROM table_1
GROUP BY last_name HAVING count(last_name) >1
) AND
state IN (
SELECT state FROM table_1
GROUP BY state HAVING count(state) >1
)
这个语句似乎返回了表中满足前两个条件(gy >= 2 AND arc = '')的每条记录,并忽略了最后三个,我不明白。
有没有人推荐一种更成功的方法来返回在所有三个 first_name、last_name 和 state 字段中具有重复值的所有记录的所有字段?
【问题讨论】:
标签: mysql duplicates