Выберите столбцы и объедините из нескольких таблиц, используя sqlalchemy - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь сделать что-то, что, на мой взгляд, должно быть простым в 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 кажется запутанным, и я не могу понять, как это сделать.

Любое руководство?Кажется, я упускаю что-то очевидное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...