我有两张表(有相应的模型):
Mapping
id parent_id child_id child_qty
1 1 1 5
2 1 2 3
3 1 4 4
4 2 1 3
5 2 3 2
Child
id name property
1 name1 prop1
2 name2 prop2
3 name3 prop3
4 name4 prop4
Note: in Mapping model, 'child' is defined as a ForeignKey on Child model, that automatically creates 'child_id' in Mapping table.
我想写一个连接:
SELECT mt.child_id, mt.child_qty, ct.name, ct.property
FROM mapping mt, child ct
WHERE mt.parent_id = 1;
得出的结果是:
child_id child_qty name property
1 5 name1 prop1
2 3 name2 prop2
4 4 name4 prop4
我写了这个:
my_qs = Mapping.objects.select_related('child').filter(parent_id=1).values()
print(my_qs)
# [{'id':1, 'parent_id': 1, 'child_id': 1, 'child_qty': 5},
# {'id':2, 'parent_id': 1, 'child_id': 2, 'child_qty': 3},
# {'id':3, 'parent_id': 1, 'child_id': 4, 'child_qty': 4}]
我需要修改我的 ORM 查询以便:
- 我在输出中没有看到“id”和“parent_id”
- 我在输出中看到“ct.name 和 ct.property”(带有或不带有“ct.”前缀)
试试这个