Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 动态炼金术_Python_Mysql_Sqlalchemy - Fatal编程技术网

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))