我有一个select
对象s1
,我想将其视为一个视图,以便我可以将其他表加入其中。我尝试过这样的事情:
s1 = select([t1], ...)
s2 = s1.join(t2, t1.c.id==t2.c.id)
但是我收到了错误:
sqlalchemy.exc.StatementError: Not an executable clause
我试过这个:
s1 = select([t1], ...)
s2 = select([t1, t2], from_obj=s1.alias().join(t2, t1.c.id==t2.c.id))
但是我收到了这个错误:
sqlalchemy.exc.ProgrammingError: (ProgrammingError) invalid reference to FROM-clause entry for table "t1"
我需要这样做的原因是因为s1
是从应用复杂where子句的函数返回的,而不是在构造s2
时不重建where子句。