Django,关系查询集

时间:2010-03-05 00:28:15

标签: django django-models django-queryset

如何在Django Queryset中表达此SQL查询?

SELECT * FROM Table1, Table2 WHERE Table1.id_table2 = Table2.id_table2;

请注意table1的结构意味着id_table2外键......

为什么呢?因为我想将id_table2 Table1列表中的table1.object.all()替换为与关系中涉及的寄存器相关联的值。喜欢这个

没有关系

| id_table1 | id_table2 | foo_field1 | bar_field1 |
---------------------------------------------------
| 1         | 1         | foo1       | foo2       |
---------------------------------------------------

有关系

| id_table1 | foo_field2*| foo_field1 | bar_field1 |
----------------------------------------------------
| 1         | foo2       | foo1       | foo2       |
----------------------------------------------------

请注意,foo_field2不仅表示此相关字段,还表示该寄存器的所有相关字段。

1 个答案:

答案 0 :(得分:0)

您无法使用Django ORM执行该查询。您可以做的最好的事情是使用select_related()同时拉出另一个表的字段:

Table1.objects.select_related('table2')