2013-07-04 3 views
0
내 목록이 같은 두 가지 요소가 포함되어있는 경우 I 동적으로, 예를 들어, 테이블 이름을 포함하는 목록에서 테이블의 특정 번호를 가입하려는

가입 쿼리의 두 테이블 사이.동적 SQLAlchemy의

table1 LEFT JOIN table2 on table1.id = table2.id 

테이블에 요소가 하나만 있으면 결합을 수행 할 필요가 없습니다.

어떻게 SQLAlchemy로이 작업을 수행 할 수 있습니까? 어떻게 (table_to_join 단 하나의 요소가있는 경우)에 가입 할 필요가 없을 것입니다 사건을 관리 할 수 ​​있습니다 다음

test_query = session.query(my_table).join(tables_to_join) 

그러나 :

은 내가 이런 식으로 뭔가를해야 할 것 같아요?

도움이 될 것입니다!

+0

당신은 단지'tables_to_join'의 길이를 확인하고 루프 경우에 '.join (tables_to_join)'부분을 부착 할 수 없습니다? 또는 나는 무엇인가 여기에서 놓쳤 느냐? –

답변

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