2014-07-14 15 views

回答

0

自加入,3次(未测试):SELECT *一个从your_table一个,your_table B,your_table C,your_table d 其中 a.fname = b.fname和a.lname = c.lname和一个。职业= d.occupation

1

简单的解决方法是增加一个HAVING子句,其中有重复所有三列

SELECT 
    ID, FirstName, LastName, Occupation, Age 
FROM table1 
GROUP BY 
    FirstName, 
    LastName, 
    Occupation 
HAVING COUNT(*) > 1 

这里分组后是DEMO有两个重复的行,以确保其工作正常


编辑:

我第一次认识是你想要的,当它具有重复一行返回..如果你想有一个查询将返回所有重复的行.. 那么这里是......这将返回行1和3

SELECT p1.* FROM people p 
JOIN people p1 
    ON p1.firstname = p.firstname 
    AND p1.lastname = p.lastname 
    AND p1.occupation = p.occupation 
GROUP BY id 
HAVING COUNT(*) > 1; 

另一DEMO

+0

不错!我试图使用一些复杂的'加入',但你的解决方案更优雅! – Cynical

+0

@Cynical谢谢:)我已经尝试编写这么多复杂的查询只是为了得到一些简单的解决方案太大lol –

+0

您的查询返回行1和2,而不是第1和第3行。 – blarg

相关问题