【问题标题】:Django - Making a SQL query on a many to many relationship with PostgreSQL Inner JoinDjango - 使用 PostgreSQL 内部联接对多对多关系进行 SQL 查询
【发布时间】:2013-07-20 15:23:14
【问题描述】:

我正在寻找使用 Inner Join 的特定原始 SQL 查询。

我有这些模型:

class EzMap(models.Model):
    layers = models.ManyToManyField(Shapefile, verbose_name='Layers to display', null=True, blank=True)


class Shapefile(models.Model):
    filename = models.CharField(max_length=255)


class Feature(models.Model):
    shapefile = models.ForeignKey(Shapefile)

我想创建一个对 PostgreSQL 有效的 SQL 查询,就像这样:

select id from "table_feature" where' shapefile_ezmap_id = 1 ;

但我不知道如何使用INNER JOIN 过滤features,它们所属的shapefile 与特定的ezmap 对象相关

【问题讨论】:

    标签: sql django postgresql


    【解决方案1】:

    类似这样的:

    try:
        id = Feature.objects.get(shapefile__ezmap__id=1).id
    except Feature.DoesNotExist:
        id = 0 # or some other action when no result is found
    

    如果您想处理多个Feature 结果,则需要使用filter(而不是get)。

    【讨论】:

    • 非常感谢。然后使用 QuerySet.query 我可以获得我需要的原始 SQL 查询
    猜你喜欢
    • 2021-09-08
    • 2012-10-07
    • 2021-06-24
    • 2015-10-26
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 2013-05-11
    • 2015-10-05
    相关资源
    最近更新 更多