2013-04-29 68 views
1

標題似乎在描述我的問題方面做得很差;讓我試着和一個簡單的例子解釋一下:如何選擇2列組合相同的行

可以說我有如下表:

_______________________ 
|id|variant_id|attr_id| 
|__|__________|_______| 
|1 |15  |110 | 
|2 |15  |110 | 
|3 |20  |152 | 
|4 |20  |110 | 
|5 |21  |110 | 
|__|__________|_______| 

現在,我想有是選擇所有行的查詢,其中的組合variant_idattr_id列出現多次。基本上在這個例子中,它應該選擇第1行和第2行,因爲它們的組合variant_idattr_id在表中多次出現。

這可能嗎?試圖想出一個可能的解決方案,我的頭痛了。

回答

4

嘗試此查詢

SELECT a.* FROM 
tbl a 
inner join 
tbl b 
ON a.variant_id =b.variant_id AND a.attr_id = b.attr_id 
WHERE a.id <> b.id; 

希望這有助於事業的

+0

啊!我忘了你可以自己加入桌子!感謝這項工作,完美無瑕。 – xNidhogg 2013-04-29 07:54:28

4
SELECT variant_id, attr_id 
FROM YouTable 
GROUP BY variant_id, attr_id 
HAVING COUNT(*) > 1