Ошибка SQLAlchemy: «Каждая производная таблица должна иметь свой псевдоним» - PullRequest
0 голосов
/ 15 декабря 2011
ownself = db.session.query(User.id.label("user_1_id"), User.id.label("user_id"))

User2 = aliased(User)
FacebookUser2 = aliased(FacebookUser)
friends = (db.session.query(User2.id.label("user_1_id"), User.id.label("user_id")).
           join(FacebookUser2, User2.facebook_info == FacebookUser2.id).
           join(FriendConnection, FacebookUser2.id == FriendConnection.fb_user_from).
           join(FacebookUser, FacebookUser.id == FriendConnection.fb_user_to).
           join(User, User.facebook_info == FacebookUser.id)
           )

u_all = union_all(ownself, friends)

q = (db.session.query(User).filter(u_all.c.user_id == user.id))

Я получаю сообщение об ошибке «Каждая производная таблица должна иметь свой псевдоним» в MySQL. Как это исправить?

1 Ответ

1 голос
/ 15 декабря 2011

Я думаю, что комментарий в ваш другой вопрос должен охватить это сейчас: просто добавьте .alias("alias_name") к (частичному) запросу.
В вашем примере кода добавьте его к обоимзапросы:

# old:
u_all = union_all(ownself, friends)
# new:
u_all = union_all(ownself.alias("subquery1"), friends.alias("subquery2"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...