概述
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,内连接和左外连接所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧