Python 2.7 Pythonic和SQLAlchemy是映射需要多次查找的数据的最佳方法

Python 2.7 Pythonic和SQLAlchemy是映射需要多次查找的数据的最佳方法,python-2.7,select,join,sqlalchemy,union,Python 2.7,Select,Join,Sqlalchemy,Union,我正在学习SQLAlchemy,并使用一个数据库,在这个数据库中,需要多个表查找才能找到单个数据段 我试图找到将多个查找映射到单个SQLAlchemy对象或可重用python方法的最佳(最有效和最具python风格)方法 最终,将有几十个(如果不是几百个)这样的映射对象,所以像.map文件这样的东西可能很方便 即(使用伪代码) 如果我想从“患者姓名”中查找数据“状态”,必须使用三个表 不是为每个潜在的“this”到“that”数据请求编写一个函数,而是有一种SQLAlchemy或Python方

我正在学习SQLAlchemy,并使用一个数据库,在这个数据库中,需要多个表查找才能找到单个数据段

我试图找到将多个查找映射到单个SQLAlchemy对象或可重用python方法的最佳(最有效和最具python风格)方法

最终,将有几十个(如果不是几百个)这样的映射对象,所以像.map文件这样的东西可能很方便

即(使用伪代码)

如果我想从“患者姓名”中查找数据“状态”,必须使用三个表

不是为每个潜在的“this”到“that”数据请求编写一个函数,而是有一种SQLAlchemy或Python方法来进行映射吗

我可以创建新的临时SQLAlchemy表来存储数据。我无权更改正在读取的数据库。我希望减少对数据库的单独调用,因为它是远程的,而且速度很慢

我不确定数据联接是否有效,因为数据库中的主键、外键和列名不一致。但是,我真的不知道如何在SQLAlchemy中进行选择连接

也许我需要创建一个新表,并与前三个表建立关系?但我不太了解这些关系

这些表可以从map.ini文件自动生成吗

编辑: 我可以补充一点,其中一些关系可能是一对多的关系。也就是说,患者可能与多个statusID关联…例如


您应该加入。我不完全确定您所说的“主键、外键和列名在数据库中不一致”是什么意思,但只要您知道列的名称(您无论如何都需要以其他方式进行此操作,即使它们不一致),以及哪些列引用相同的内容(即连接条件),您就可以这样做。感谢您的输入。这里的问题是,;当尝试在“Patient_status”和“status_ID”之间进行连接(在本例中)时,我得到一个错误“sqlalchemy.exc.NoForeignKeysError:找不到“Patient_status”和“status_ID”之间的任何外键关系”。正如我提到的,我无法修改数据库以添加外键关系。数据库中不需要外键。您只需要在SQLAlchemy中定义它。实际上,您根本不需要外键,因为您可以直接指定连接条件:
db.session.query(Patient\u status).join(Patient\u name,Patient\u status.PatientId==Patient\u name.PatientId)