假设孩子中存在某物,从父表中选择所有记录



我要跨越一对多的关系,以有效地从父表中选择所有记录,假设子表中存在某物。

来自Models.py

class Meter(models.Model):
    deal = models.ForeignKey(Deal, on_delete=models.CASCADE)
    company = models.IntegerField()
class Deal(models.Model):
    dealinfo = models.IntegerField()

在英语中,选择所有拥有公司#2

米的交易

在SQL中:

select * from Deal
where Deal.id in
(
select distinct Deal_id
from Meter
where Meter.company = 2
);

我不知道如何在没有两个查询的情况下做到这一点。我什至无法想到Google解决方案的好方法。

我尝试了: 结果= deal.objects.filter(meter__company = 2(我在这里发现:您如何通过ORM访问父母和孩子的关系,并在记录孩子存在的父母身上有条件?但这是一个内在的加入,没有实现"唯一"短语,所以我得到了多个记录。

我认为您正在寻找的东西可以使用独特((

来解决
 result = Deal.objects.filter(meter__company=2).distinct()

最新更新