Форум сайта python.su
Есть три таблицы
class A(models.Model): #Справочник
ax = models.IntegerField() #Данные
class B(models.Model):
a = models.ForeignKey(A) #Множество дополнительных
bx = models.IntegerField() #данных
class C(models.Model): # Прецеденты
a = models.ForeignKey(A)
C.objects.select_related('a__ax').all()
B.objects.select_related('a__ax').all()
SELECT * from C c
LEFT JOIN B b ON b.a_id = c.a_id
Отредактировано (Дек. 3, 2009 17:02:00)
Офлайн
Nick2009Такое конечно сделать можно например так:
Как такой запрос сделать при существующей схеме?
qs = C.objects.all()
qs.query.as_sql()
qs.query.join(
(C._meta.db_table, B._meta.db_table, C._meta.get_field('a').attname, B._meta.get_field('a').attname),
promote=True
)
Офлайн