Python 动态炼金术
我希望从包含表名的列表中动态连接一定数量的表,例如,如果我的列表包含以下两个元素:Python 动态炼金术,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我希望从包含表名的列表中动态连接一定数量的表,例如,如果我的列表包含以下两个元素: tables_to_join = ['table1','table2'] 然后我希望在查询中这两个表之间有一个左连接 table1 LEFT JOIN table2 on table1.id = table2.id 如果表只包含一个元素,那么就不需要进行连接 请问我怎样才能用SQLAlchemy做到这一点 我想我应该这样做: test_query = session.query(my_table).join(
tables_to_join = ['table1','table2']
然后我希望在查询中这两个表之间有一个左连接
table1 LEFT JOIN table2 on table1.id = table2.id
如果表只包含一个元素,那么就不需要进行连接
请问我怎样才能用SQLAlchemy做到这一点
我想我应该这样做:
test_query = session.query(my_table).join(tables_to_join)
但是,如何处理不需要联接的情况(如果表\u to\u联接只包含一个元素)
任何帮助都会很棒 难道你不能只检查
表连接的长度,然后将.join(表连接)
部分粘贴到if循环中吗?还是我错过了什么。
tables_to_join = [..]
if (len(tables_to_join) > 1):
query = session.query(eval(tables_to_join[0]))
for table in tables_to_join[1:]:
query = query.join(eval(table))