Join в SQLAlchemy

Делаю join 2уx таблиц (зависимость (TABLE_1 : TABLE_2) =>> (1:M) ):

all_rows = db.session.query(
    TABLE_1
    ).filter(
            TABLE_1.field1 == value1,
            TABLE_2.field2 == value2
    ).join(
           TABLE_2
    ).filter(
             TABLE_2.field3 == value3
    ).all()

Потом хочу распечатать результат:

for rows in all_rows :
    print('*', rows )

Выдает почему-то только 1 строку и то только данные TABLE_1

Что я не так сделал?


Ответы (1 шт):

Автор решения: Алексей Белкин

Во-общем, решил логику MySQl подключить и разобрался. Не знаю на сколько это верный вариант, но работает:

all_rows = db.session.query(
                    TABLE_1.field1,
                    TABLE_1.field2,
                    TABLE_2.field3
                ).join(
                    TABLE_2, TABLE_1.id == TABLE_2.table1_id
                ).filter(
                    TABLE_1.field1== obj_el.value1,
                    TABLE_1.field2== obj_el.value2,
                    TABLE_2.field3 == obj_el.value3
                ).all()

Ну и печать самой выборки:

for row in all_rows :
    print('*', row.field1, row.field2, row.field3)
→ Ссылка