Thank you, Mike!
On Friday, May 25, 2018 at 6:36:34 PM UTC+3, Mike Bayer wrote:
>
> map Comment like this:
>
> from sqlalchemy.orm import query_expression
>
> class Comment(Base):
> __tablename__ = 'comment'
> id = Column(Integer, primary_key=True)
> news_id = Column(Integer, ForeignKey(News.id))
>
> is_read = query_expression()
>
>
> then you need to use options in your query to link the join to your
> subquery, as well as the is_read expression, to that object:
>
> from sqlalchemy.orm import contains_eager
>
> comment_read_query = (
> session.query(CommentRead).filter(
> CommentRead.comment_id == Comment.id,
> CommentRead.user_id == 1, # Interested in reads by specific user
> ).exists().label('is_read')
> )
> comment_query = session.query(Comment, comment_read_query).subquery()
> news = session.query(News).outerjoin(comment_query).options(
> contains_eager(News.comments, alias=comment_query).with_expression(
> Comment.is_read, comment_query.c.is_read)
> ).all()
>
>
>
>
> On Fri, May 25, 2018 at 11:28 AM, Marat Sharafutdinov <[email protected]
> <javascript:>> wrote:
> > The news has comments, the comments have readings by users.
> > I need to receive all the news with comments and readings of these
> comments
> > by a specific user.
> > The query is ok, but I can't get the value of the column `is_read` as an
> > attribute of the comment object.
> >
> > --
> > SQLAlchemy -
> > The Python SQL Toolkit and Object Relational Mapper
> >
> > http://www.sqlalchemy.org/
> >
> > To post example code, please provide an MCVE: Minimal, Complete, and
> > Verifiable Example. See http://stackoverflow.com/help/mcve for a full
> > description.
> > ---
> > You received this message because you are subscribed to the Google
> Groups
> > "sqlalchemy" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an
> > email to [email protected] <javascript:>.
> > To post to this group, send email to [email protected]
> <javascript:>.
> > Visit this group at https://groups.google.com/group/sqlalchemy.
> > For more options, visit https://groups.google.com/d/optout.
>
--
SQLAlchemy -
The Python SQL Toolkit and Object Relational Mapper
http://www.sqlalchemy.org/
To post example code, please provide an MCVE: Minimal, Complete, and Verifiable
Example. See http://stackoverflow.com/help/mcve for a full description.
---
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.