您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django ForeignKey,null = True,内连接和左外连接

5b51 2022/1/14 8:22:26 python 字数 1963 阅读 563 来源 www.jb51.cc/python

假设我有两个Django模型人和公司如下: class Company(models.Model): name = models.CharField() class Person(models.Model): last_name = models.CharField(blank=True) first_name = models.CharField() compa

概述

class Company(models.Model):
    name = models.CharField()

class Person(models.Model):
    last_name = models.CharField(blank=True)
    first_name = models.CharField()
    company = models.ForeignKey(Company,null=True,blank=True)

一个人可能属于或不属于一个公司.

我正在使用MysqL.我想要所有不属于任何公司的人,即公司无效的人.

如果我做Person.objects.filter(company__isnull = True)我得到一个基本上是sql

SELECT * FROM PersonTable LEFT OUTER JOIN AgencyTable ON(PersonTable.company_id = AgencyTable.id)WHERE AgencyTable.id IS NULL

我如何去实现以下sql

SELECT * FROM PersonTable INNER JOIN AgencyTable ON(PersonTable.company_id = AgencyTable.id)WHERE AgencyTable.id IS NULL

从阅读Django Users邮件列表中收集到的信息,这曾经是QuerySet Refactor之前的行为.

编辑 – 现在我看到我的问题的亵渎!

我想说的是我只想做

SELECT * FROM PersonTable WHERE PersonTable.company_id IS NULL

Workaround: Instead of

Person.objects.filter(company=None)

use

Person.objects.exclude(company__isnull=False)

总结

以上是编程之家为你收集整理的Django ForeignKey,null = True,内连接和左外连接全部内容,希望文章能够帮你解决Django ForeignKey,null = True,内连接和左外连接所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶