标题似乎在描述我的问题方面做得很差;让我试着用一个简单的例子来解释它:
假设我有下表:
_______________________
|id|variant_id|attr_id|
|__|__________|_______|
|1 |15 |110 |
|2 |15 |110 |
|3 |20 |152 |
|4 |20 |110 |
|5 |21 |110 |
|__|__________|_______|
现在,我想要的是一个查询,它会选择variant_id
和attr_id
列组合出现多次的所有行。基本上在这个示例中,它应该选择第1行和第2行,因为它们在variant_id
和attr_id
的组合在表中出现不止一次。
这可能吗?我试图想出一个可能的解决方案,这让我很痛苦。
答案 0 :(得分:4)
SELECT variant_id, attr_id
FROM YouTable
GROUP BY variant_id, attr_id
HAVING COUNT(*) > 1
答案 1 :(得分: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;
希望这有帮助