gpt4 book ai didi

python - 用于具有多个左连接的 SQL 查询的 Django ORM

转载 作者:行者123 更新时间:2023-12-01 08:53:18 26 4
gpt4 key购买 nike

我有一个 SQL 查询,我试图将其作为 Django ORM,尝试了很多方法,但没有得到确切的解决方案。

select c.* from product p 
left join voucher v on v.id = p.voucher_id
left join customer c on c.id = v.customer_id
where p.id=3;

Django 模型是,

class Customer(models.Model):
customer_name = models.CharField(max_length=200, default="", db_index=True)
mobile = models.IntegerField(default='')

class Voucher(models.Model):
voucher_name = models.CharField(max_length=100, default='')
customer = models.ForeignKey(Customer,db_index=True)

class Product(models.Model):
product_name = models.CharField(max_length=100, default='')
rate = models.FloatField(max_length=50)
voucher = models.ForeignKey(Voucher, db_index=True)

最佳答案

需要使用select_lated

ORM:Product.objects.filter(id=3).select_lated('voucher__customer')

select_lated 通过创建 SQL 连接来工作 docs

关于python - 用于具有多个左连接的 SQL 查询的 Django ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52961935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com