Digamos que tengo dos Django modelos de persona y de la compañía de la siguiente manera: -Django ForeignKey con nula = True, combinación interna y externa izquierda
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)
Una persona puede o no pertenecer a una empresa.
Estoy usando MySQL. Quiero todas las Personas que no pertenecen a ninguna Compañía, es decir, Personas donde la compañía es nula.
Si hago Person.objects.filter(company__isnull=True)
me sale un SQL que es esencialmente: -
SELECT * FROM PersonTable LEFT OUTER JOIN AgencyTable ON (PersonTable.company_id = AgencyTable.id) WHERE AgencyTable.id IS NULL
¿Cómo hago para lograr el SQL siguiente: -
SELECT * FROM PersonTable INNER JOIN AgencyTable ON (PersonTable.company_id = AgencyTable.id) WHERE AgencyTable.id IS NULL
Por lo que sé al leer la lista de correo de los usuarios de Django, este solía ser el comportamiento antes de QuerySet Refactor.
EDITAR - ¡Ahora veo la blasfemia de mi pregunta!
Lo que quiero decir es simplemente quiero hacer
SELECT * FROM PersonTable WHERE PersonTable.company_id IS NULL
Bueno, si esto no es hacer sentido para ti, esto es en realidad una consulta 'base' que obtiene INTERIOR unido a otras consultas, y esto lleva a la extraña resultados repetitivos. – chefsmart
Esta pregunta es realmente el resultado de un bloqueo mental. – chefsmart