0

我想从包含表名的列表中动态连接一定数量的表,例如,如果我的列表包含两个这样的元素:

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)

但是,我该如何处理不需要加入的情况(如果 table_to_join 只包含一个元素)?

任何帮助都是极好的!

4

1 回答 1

1
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))
于 2013-07-04T13:13:37.793 回答