如何查找与某些其他记录共享相同字段值的所有记录?

问题描述:

我需要提取所有具有不具有唯一值的字段的记录。如何查找与某些其他记录共享相同字段值的所有记录?

我找不出一个优雅的方式来做到这一点 - 使用注释或其他方式。我向对象管理器看到了一个“value_annotate”方法,但不清楚它是否与之相关。

目前我使用的简单的通过所有值循环的不雅的方式,做一个得到的值,如果有这意味着它不是唯一的一个例外..

感谢

我可以”牛逼多讲Django的部分,但查询看起来是这样的:

SELECT * 
FROM foo 
WHERE id IN (
    SELECT MAX(id) 
    FROM foo 
    GROUP BY bar 
    HAVING COUNT(*)=1) 

这将返回所有记录在“酒吧”域是唯一的。

我会直接在这种情况下的原始查询。这会看起来像下面,假设你使用Django 1.2:

query = """ 
SELECT * 
FROM table 
GROUP BY field 
HAVING COUNT(*) > 1 
""" 
non_uniques = Table.objects.raw(query) 

对于比1.2早,见the django docs on raw queries