Я пытаюсь сделать что-то, что, на мой взгляд, должно быть простым в sqlalchemy, используя оператор select
.По сути, у меня есть две таблицы, и я хочу выбрать из них несколько столбцов и выполнить левое внешнее объединение с группой.В SQL это будет выглядеть примерно так:
SELECT
t1.id,
t1.name,
count(t2.id) as child_count
FROM parent t1
LEFT OUTER JOIN child t2
ON t1.id = t2.parent_id
GROUP BY t1.id, t1.name;
В sqlalchemy я могу сделать что-то близкое, но не совсем правильно, сделав следующее:
sqlalchemy.select(
t1.id,
t1.name,
sqlalchemy.func.count(t2.id)
).where(
t1.id==t2.parent_id
).group_by(
t1.id, t1.name
)
Однако, как только я начнуиспользование .join
или .outerjoin
кажется запутанным, и я не могу понять, как это сделать.
Любое руководство?Кажется, я упускаю что-то очевидное.