django同时注释/计数两列

时间:2014-02-11 20:10:32

标签: python sql django postgresql django-models

我有一张叫做人际关系的桌子。我想返回关系最多的前10位用户。想想最流行的用户列表。

我见过关于在一列中返回顶部事件的示例,但两者都有?这是表格的一个示例:

user_a | user_b
     1 |      2
     2 |      5
     3 |      4
     4 |      5
     1 |      4
     2 |      6
     1 |      5

以下是该模型的一个示例:

class Relationship(models.Model):
    user_a = models.ForeignKey(User, related_name='user_a')
    user_b = models.ForeignKey(User, related_name='user_b')

如何在django中创建这样的查询集?

1 个答案:

答案 0 :(得分:0)

您可以使用如下原始查询:

select user, count(*)
from (
select user_a as user
from table
union all
select user_b as user
from table )
group by user
order by count(*) desc