Ссылочный столбец SQLAlchemy через внешний ключ - PullRequest
0 голосов
/ 08 февраля 2019

Если у меня есть таблица operator и таблица user, и у меня есть несколько связей с таблицей user в operator, где pm - это relationship(), который присоединяется к operator.pm_id == user.idsales - это relationship(), который присоединяется к operator.sales_id == user.id, как я могу сослаться на столбец username из таблицы user в операторе выбора, аналогично следующему:

stmt = select([operator, operator.pm.username.label('pm'), operator.sales.username.label('sales')])

Это, очевидно, не работает, но как я могу сделать что-то подобное?

1 Ответ

0 голосов
/ 08 февраля 2019

Основная идея заключается в следующем:

stmt = select([operator.name, user.name])
stmt = stmt.select_from(operator.join(user, operator.pm_id==user.id))

Вы можете сгенерировать объединения столбцов из нескольких таблиц, используя инструкцию select_from следующим образом.

Последняя часть, которую вы хотите добавить

operator.sales (отличается от имени пользователя из таблицы пользователей)

Я до сих пор не до конца понимаю.Но, возможно, вы можете использовать схему выше, чтобы решить эту проблему тоже.

РЕДАКТИРОВАТЬ:

Чтобы сделать это явным: Вы можете связать эту операцию на неопределенный срок, например

stmt = stmt.select_from(table1.join(table2, table1.key==table2.key).join(table3, table2.key==table3.key))

и т. Д...

...