2014-07-14 14 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

相關問題