【问题标题】:how to perform count and join in django?如何在 django 中执行计数和加入?
【发布时间】:2010-10-15 06:19:46
【问题描述】:

我如何使用模型来执行如下所示的连接和计数查询:

select count(*),site_url from connection_ss 
   join site_ss on to_id_id = site_id 
        where site_ss.source_id = 1 group by site_url order by count desc

这是我的模型:

class site(models.Model):
    site_id = models.AutoField(primary_key=True)
    site_url = models.URLField(unique=True)
    human_verified = models.BooleanField(default=False)
    last_entry2 = models.DateTimeField(default='2009-01-01')
    source_id = models.ForeignKey(source)
    author_alias = models.TextField()

class connection(models.Model):
    from_id = models.ForeignKey(site,related_name="from_get")
    to_id = models.ForeignKey(site,related_name = "to_get")

    class Meta:
        db_table = "connection_ss"
        unique_together = (("from_id","to_id"),)

【问题讨论】:

    标签: django postgresql django-models


    【解决方案1】:

    您正在寻找的是 Aggregation/annotation 。使用 Count 对象,您可以执行以下操作:

    Connection.objects.filter(site__to__source=1).annotate(Count('site_url')).order_by('-count')
    

    请注意,这不起作用,因为我并不真正了解您尝试获取的对象是什么,但我希望这将作为指导有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多