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)