1

标题似乎在描述我的问题方面做得很差;让我试着用一个简化的例子来解释它:

假设我有下表:

_______________________
|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

2 回答 2

5
SELECT variant_id, attr_id
FROM YouTable
GROUP BY variant_id, attr_id
HAVING COUNT(*) > 1
于 2013-04-29T07:37:23.707 回答
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;

希望这可以帮助

于 2013-04-29T07:38:03.410 回答