SqlAlchemy外连接仅返回一个表

时间:2017-11-07 20:04:46

标签: python join sqlalchemy

所以我跑的时候 select * from table1 t1 left outer join table2 t2 on t1.id = t2.id;终端

中的sqlite3

我按照自己的意愿收回了数据,并期待。

但是,当我在SqlAlchemy中运行它时 TableOneModel.query.outerjoin(TableTwoModel,TableOneModel.id == TableTwoModel.id)

我只收到table1信息。我甚至没有从table2获得空列。我错过了一些傻事吗?

1 个答案:

答案 0 :(得分:3)

您可能正在使用Flask-SQLAlchemy,它提供查询属性作为选择模型实体的快捷方式。您的查询等同于

db.session.query(TableOneModel).\
    join(TableTwoModel,TableOneModel.id == TableTwoModel.id)

显式查询两个实体:

db.session.query(TableOneModel, TableTwoModel).\
    join(TableTwoModel,TableOneModel.id == TableTwoModel.id)

add the entity原件:

TableOneModel.query.\
    join(TableTwoModel,TableOneModel.id == TableTwoModel.id).\
    add_entity(TableTwoModel)