【问题标题】:SQLAlchemy error: "Every derived table must have its own alias"SQLAlchemy 错误:“每个派生表都必须有自己的别名”
【发布时间】:2012-01-21 01:19:38
【问题描述】:
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 中收到错误“每个派生表必须有自己的别名”,我该如何解决?

【问题讨论】:

    标签: mysql sqlalchemy


    【解决方案1】:

    我认为your other question 中的评论现在应该涵盖这一点:只需将.alias("alias_name") 添加到有问题的(部分)查询中。
    在您的代码示例中,将其添加到两个子查询中:

    # old:
    u_all = union_all(ownself, friends)
    # new:
    u_all = union_all(ownself.alias("subquery1"), friends.alias("subquery2"))
    

    【讨论】:

      猜你喜欢
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      • 2012-05-16
      • 2016-11-29
      • 1970-01-01
      相关资源
      最近更新 更多