Python 在SQLAlchemy中需要时自动包含连接
我正在建立一个关于一组桌子的课程。其中的一个小窗口TableDates包含一个字段TableDates.date,我用它来过滤周期。那很容易。假设查询已具有所需的select构造:Python 在SQLAlchemy中需要时自动包含连接,python,join,sqlalchemy,Python,Join,Sqlalchemy,我正在建立一个关于一组桌子的课程。其中的一个小窗口TableDates包含一个字段TableDates.date,我用它来过滤周期。那很容易。假设查询已具有所需的select构造: query = query.filter(TableDates.date < date) query=query.filter(TableDates.date
query = query.filter(TableDates.date < date)
query=query.filter(TableDates.date
当查询已经包含了一个与TableDates的正确连接时,它就可以工作了
但在某些情况下,y的查询不包含正确的联接。在这些情况下,我应该使用:
query = query.join(TableDates).filter(TableDates.date < date)
query=query.join(TableDates).filter(TableDates.date
这就是问题所在。我希望在一个对象方法中包含此筛选代码,该方法可以同时处理已经加入或未加入TableDates的查询。当然,当我使用TableDates连接时,我可以跟踪自己的方法,以决定是否必须在查询中包含join(TableDates)。但我的问题是:有没有办法让SQLAlchemy完成这项工作?我浏览了文档,没有找到任何线索,但可能我错过了
更具体地说,我想到的是:
- 有一种检查查询以了解TableDates是否已加入其中的方法
- 有一种写入联接(TableDates)的方法,如果它已经在查询中联接,那么它什么也不做(当然,如果我只是在TableDates已经联接时尝试添加该联接,我会得到一个异常,说明我无法将其自身联接)