﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
16766	Senseless query for complex relations	theaspect@…	nobody	"Here my models
{{{
class Group(Model):
    pass

class SubGroup(Model):
    group = ForeignKey(Group)

class User(Model):
    group = (Group)
    subgroup = (SubGroup, null = true, blank = true)
}}}

so, I want all Users whose subgroup's group does not equal group, note null option for user
{{{
User.objects.except('subgroup__group' = F('group'))
}}}

in query we get all users with subgroup = null, and in iteration, all reference to user.subgroup.group will throw exception, because, obviously, subgroup is None 

here sql that I've got from django
{{{
SELECT * FROM `user` LEFT OUTER JOIN `subgroup` ON (`user`.`subgroup_id` = `subgroup`.`id`) WHERE NOT ((`subgroup`.`group_id` =  `user`.`group_id` AND NOT (`subgroup`.`id` IS NULL)))
}}}

here what i'm expect

{{{

SELECT * FROM user u
join group g on g.id = u.group_id
left join subgroup s on u.subgroup_id = s.id and s.group_id = g.id
where not (s.group_id = u.group_id)

}}}"	Uncategorized	closed	Database layer (models, ORM)	1.3	Normal	invalid			Unreviewed	0	0	0	0	0	0
