web2py的DAL是能自动连接表 联查的,例如
db.define_table('person',Field('Name'),Field('Age')), db.define_table('thing', Field('owner_id'), Field('price'),Field('type')),
我们执行db(db.person.id == db.thing.owner_id),就能自动实现连接查询
在使用 SQLFORM.grid展示多表连接查询展示时,一定要注意:
SQLFORM.grid(
db(db.person.id == db.thing.owner_id),
.....)
1、一定要设置field_id=None字段,例如field_id=db.person.id ,。
2、fields字段要控制[db.person.Name,db.thing.type]
3、left参数用于 1对多,或者有person行,但是没有thing时,他也能展示出来,例如:
left=db.thing.on(db.person.id == db.thing.owner_id)