我有一个名为property的表,其结构如下。
property_id | ListingKey | name
1 abkjhj-123 abc
2 abkjhj-123 abc1
3 abkjhj-124 abc4
我想要基于ListingKey的重复记录。我写此查询,但不确定这是否正确?
SELECT a.property_id
FROM property a
INNER JOIN property b ON a.property_id = b.property_id
WHERE a.ListingKey <> b.ListingKey
提前致谢。
最佳答案
您可以使用Having
子句避免自我连接:
SELECT a.ListingKey
FROM property a
GROUP BY a.ListingKey
HAVING COUNT(a.property_id) > 1;
SqlFiddle
更新:如果您还希望在重复项中列出所有ID,请执行以下操作:
SELECT a.ListingKey, GROUP_CONCAT(a.property_id)
FROM property a
GROUP BY a.ListingKey
HAVING COUNT(a.property_id) > 1;