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 2922,[patch] defining outer joins,mir@…,nobody,"(this is going to be discussed on the devel list) I was looking for an easy way to define extra outer joins. It turned out that it's easy to extend the QuerySet.extra method with a 'joins' argument used like this: {{{ notes = Note.objects.select_related().extra( joins=['left outer join %s rel1 on rel1.id=%s.release_beginn_id' % (Release._meta.db_table, Note._meta.db_table), 'left outer join %s rel2 on rel2.id=%s.release_behoben_id' % (Release._meta.db_table, Note._meta.db_table)], where=['((%(notes_table)s.release_beginn_id is null or rel1.sort_value <= %(sort_value)d) ' 'and (%(notes_table)s.release_behoben_id is null or rel2.sort_value > %(sort_value)d))' % {'sort_value': version, 'notes_table': Note._meta.db_table}], ).select_related() }}} ",enhancement,closed,"Database layer (models, ORM)",,normal,fixed,,sam@… django@…,Someday/Maybe,1,1,1,1,0,0