2012-02-02 45 views
0

重複記錄所有的人可能會建議我在這個網址http://senta.la/bd08查找MySQL的2

閱讀遵循以前的問題所以我剛纔仔細閱讀,我仍然與我的問題。這種情況不等於上面鏈接中提到的問題。

見下面我想找到的記錄(標有*):

ID   COURSE  OTHERCOLUMN_X  OTHERCOLUMN_Y  OTHERCOLUMN_Z 
123  2111   ...    ...     ... 
*5644  2245   ...    ...     ... 
*5644  2245   ...    ...     ... 
2121  2131   ...    ...     ... 

先前程序員沒有考慮使用唯一索引,使堆肥鍵,以防止這種情況。我知道......好消息是程序員不再是程序員。

這款經典的查詢其沒有提供我想要的結果...

SELECT id, course FROM mytable 
GROUP BY id 
HAVING COUNT(id) > 1 

我希望看到只有這個結果:

ID   COURSE  OTHERCOLUMN_X  OTHERCOLUMN_Y  OTHERCOLUMN_Z 
*5644  2245   ...    ...     ... 
*5644  2245   ...    ...     ... 

我只是嘗試了很多疑問,但我的可以找到一個向我展示上述結果的人。

:(

+0

瓦在「MySQL 2」? – 2012-02-02 17:03:07

回答

1

將具有重複id找到行:

SELECT a.* 
FROM mytable AS a 
    JOIN 
    (SELECT id 
     FROM mytable 
     GROUP BY id 
     HAVING COUNT(*) > 1 
    ) AS b 
    ON b.id = a.id 

將具有重複(id, course)找到行:

SELECT a.* 
FROM mytable AS a 
    JOIN 
    (SELECT id, course 
     FROM mytable 
     GROUP BY id, course 
     HAVING COUNT(*) > 1 
    ) AS b 
    ON b.id = a.id 
    AND b.course = a.course 
0

也許是這樣的:

SELECT id, course 
FROM mytable 
WHERE id in (SELECT id from mytable GROUP BY id HAVING COUNT(id) > 1) 
1

好給

SELECT id, course FROM mytable GROUP BY id HAVING COUNT(id) > 1 

工作的一種方法是加入回原始表

喜歡的東西

Select myTable.ID,myTable.Course,... From myTable 
inner join(SELECT id, course FROM mytable GROUP BY id HAVING COUNT(id) > 1) duplicates 
On duplicates.id = mytable.id and duplicates.course = mytable.course 

也許

1

嘗試使用以下內容:

SELECT id, 
COUNT(id) AS NumOccurrences 
FROM YourTableName 
GROUP BY id 
HAVING (COUNT(id) > 1)