2013-02-17 55 views
0

我心中已经有像这样的表:选择所有重复从表

serial_id season ep_id 
1   1  1 < duplicate 
1   1  2 
3   1  1 
... 
1   1  1 < duplicate 

我要选择那些在serial_id,季节和EP#ID重复的值都行,我应该用什么查询? 谢谢。

回答

2

“..在serial_id,season和ep_id中重复的值。”

SELECT serial_id, ep_id, season 
FROM tableName 
GROUP BY serial_id, ep_id, season 
HAVING COUNT(*) > 1 

,但如果你想获得的所有列(*假设你有除了serial_id,EP_ID,季节*其他列)行

SELECT a.* 
FROM tableName a 
     INNER JOIN 
     (
      SELECT serial_id, ep_id, season 
      FROM tableName 
      GROUP BY serial_id, ep_id, season 
      HAVING COUNT(*) > 1 
     ) b ON a.serial_id = b.serial_id AND 
       a.ep_id = b.ep_id AND 
       a.season = b.season 
+0

感谢,它的工作压力太大,但更复杂的 – ruhacz 2013-02-17 14:39:22

1

是这样的:

select serial_id, season, ep_id, count(*) records 
from yourtable 
group by serial_id, season, ep_id 
having count(*) > 1 
+0

+1 - 正确答案 – sgeddes 2013-02-17 14:32:39

+0

感谢,它的工作:) – ruhacz 2013-02-17 14:38:55