On Apr 11, 3:11 am, Malcolm Tredinnick <malc...@pointy-stick.com> wrote:
> Django's SQL is going exactly what you suspect and not using any outer > join here. Using a simplified version of the original two models: > > class Student(models.Model): > ... > > class Message(models.Model): > title = models.CharField(max_length=50) > student = models.ForeignKey(Student) > > ... the SQL that is generated for Message.objects.filter(student=None) > is: > > SELECT `outer_message`.`id`, `outer_message`.`title`, > `outer_message`.`student_id` FROM `outer_message` WHERE > `outer_message`.`student_id` IS NULL Yes, this correctly if student = models.ForeignKey(Student). I use this simplified models with student = models.ForeignKey (Student, null=True), sql that is generated for Message.objects.filter (student=None) is: SELECT "messages_message"."id", "messages_message"."title", "messages_message"."student_id" FROM "messages_message" LEFT OUTER JOIN "messages_student" ON ("messages_message"."student_id" = "messages_student"."id") WHERE "messages_student"."id" IS NULL i use django svn-10510 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---