Mike,
Thanks again for your posts. What about something like:
q1 = DBSession.query(P1.id, P1.user_id, P1.type, P1.title, P1.body,
P1.created, P1.updated, User.name).filter(P1.user_id==User.id)
q2 = DBSession.query(P2.id, P2.user_id, "'P2'", P2.title, P2.body,
P2.created, P2.updated, User.name).filter(P2.user_id==User.id)
q3 = DBSession.query(P3.id, P3.user_id, "'P3'", P3.title, P3.body,
P3.created, P3.updated, User.name).filter(P3.user_id==User.id)
posts = q1.union_all(q2, q3)
?
Seth
On Aug 27, 2:45 pm, Mike Conley <
mconl...@gmail.com> wrote:
> OK, I can mostly answer my own question
>
> q1=session.query(P1.userid,P1.extra,P1.title,P1.body)
> q2=session.query(P2.userid,"'X'",P2.title,P2.body)
> q3=session.query(P3.userid,"'X'",P3.title,P3.body)
> subq=q1.union_all(q2,q3).subquery()
> q = session.query(USER.email, subq).join((subq, USER.userid==subq.c.userid))
>
> gives the desired SQL
>
> But what if I have a real requirement to retrieve the email address last in
> the row?
>
> q = session.query(subq,USER.email).join((USER, USER.userid==subq.c.userid))
> and
> q = session.query(subq,USER.email).join((subq, USER.userid==subq.c.userid))
>
> both complain
> AttributeError: 'NoneType' object has no attribute 'base_mapper'
>
> Probably because the subq is first in the list and is not an entity
>
> --
> Mike Conley
>