2015-11-05 196 views
1

我有一個列ID,內容和日期的表。我想找到有重複的內容和日值的所有行和顯示所有檢查多個列進行重複並列出所有記錄

SELECT ID,Content, `Day`, Count(*) 
FROM table 
GROUP BY Content,`Day` 
HAVING COUNT(*) > 1 

當前的代碼將返回重複的內容的列表和「日」的值,例如:

ID|Content|Day 
1 | a | 1 
2 | a | 1 
3 | a | 1 
4 | b | 2 
5 | b | 2 
6 | c | 3 
7 | c | 4 

會導致:

ID|Content|Day|Count 
1 | a | 1 | 3 
4 | b | 2 | 2 

但我要顯示所有的唯一ID爲好;

ID|Content|Day 
1 | a | 1 
2 | a | 1 
3 | a | 1 
4 | b | 2 
5 | b | 2 
+0

加入該查詢整個表 – Mihai

+0

很高興你正在幫助,但也許你應該開始一個SQL教程,而不是每12小時提問一次。你會學到更多,當你需要複雜的東西幫助時,我們仍然在這裏。 –

回答

1

只是做一個Sub-Query

select * 
from table 
where `day` in 
( 
SELECT ID 
FROM table 
GROUP BY Content,`Day` 
HAVING COUNT(*) > 1 
) A 
+0

認爲您需要子查詢來返回內容和日期,並在子查詢中檢查_(content,'day')。 – Kickstart

1

使用它作爲一個子查詢的加盟對錶再次查詢: -

SELECT table.ID, table.Content, table.`Day` 
FROM table 
INNER JOIN 
(
    SELECT Content, `Day`, Count(*) 
    FROM table 
    GROUP BY Content,`Day` 
    HAVING COUNT(*) > 1 
) sub0 
ON sub0.Content = table.Content 
AND sub0.`Day` = table.`Day`