我有一个表格,MenuOptions它代表在我的应用程序的下拉列表中找到的任何选项。每个选项都可以通过它所属的菜单(例如MenuOptions.menu_name)和该选项的特定值(MenuOptions.option_value)来标识。
这个表在我的数据库中都有关系并且不使用外键,所以我很难让它与 SQLAlchemy 相结合。
在 SQL 中,它会像以下一样简单:
SELECT
*
FROM
document
JOIN
menu_options ON menu_options.option_menu_name = 'document_type'
AND menu_options.option_value = document.document_type_id
来定义这种关系。但是,在 SQLAlchemy 中执行此操作时遇到了麻烦,因为没有外键我无法干净地映射这种关系。在 SQLAlchemy 中,我迄今为止所做的最好的是:
the_doc = db.session.query(Document, MenuOptions).filter(
Document.id == document_id
).join(
MenuOptions,
and_(
MenuOptions.menu_name == text('"document_type"'),
MenuOptions.value == Document.type_id
)
).first()
哪个确实有效,并且确实返回了正确的值,但将它们作为两个单独模型对象的列表返回,因此我必须通过引用映射的文档属性the_doc[0]和映射的 MenuOptions 属性通过the_doc[1]
有没有办法可以在不使用外键或ForeignKeyConstraint我的模型中的任何外键的情况下,将此关系作为单个查询对象返回,其中包含所有属性?我试过了add_columns,add_entity但得到的结果基本相同。
flask中sqlalchemy如何模糊查询
hql语句查询两个类,查询的结果list怎么遍历·
内连接,外连接查询
2.8子查询转换为连接查询的疑惑
相关分类