Sure, thanks! 

пятница, 22 марта 2019 г., 19:39:06 UTC+3 пользователь Mike Bayer написал:
>
> On Fri, Mar 22, 2019 at 10:53 AM Konstantin Naumov <naum...@gmail.com 
> <javascript:>> wrote: 
> > 
> > Great, thank you! 
> > 
> > I thought that I can use a field of relationship() - “invited_by" in 
> User model for emitting the similar query, but I'm getting an empty list. 
>
> take a look at SQL being emitted with echo=True 
>
>
> > 
> > 
> > On Mar 20, 2019, at 12:55 AM, Mike Bayer <mik...@zzzcomputing.com 
> <javascript:>> wrote: 
> > 
> > On Tue, Mar 19, 2019 at 10:23 AM kosta <naum...@gmail.com <javascript:>> 
> wrote: 
> > 
> > 
> > Hello Mike, 
> > Thank you for your response! 
> > 
> > 
> > First of all, I'm apologize, I have lack knowledge in sql. I guess my 
> SQL should be as: 
> > Get all users invited by specific user: 
> > 
> > SELECT u.name AS "sender", i.name AS "invitee" 
> > FROM invitation inv 
> > LEFT JOIN user u ON inv.sender_id=u.id 
> > LEFT JOIN user i ON inv.invitee_id=i.id 
> > WHERE inv.sender_id=?; 
> > 
> > Get user who invited specific user: 
> > 
> > SELECT u.name AS "invited_by", i.name AS "invitee" 
> > FROM invitation inv 
> > LEFT JOIN user u ON inv.sender_id=u.id 
> > LEFT JOIN user i ON inv.invitee_id=i.id 
> > WHERE inv.invitee_id=?; 
> > 
> > 
> > here's the form of the first one and the second is basically the same 
> idea: 
> > 
> > from sqlalchemy.orm import aliased 
> > 
> > u = aliased(User, "u") 
> > i = aliased(User, "i") 
> > 
> > q = session.query( 
> >    u.name.label("sender"), 
> >    i.name.label("invitee") 
> > ).select_from(Invitation).\ 
> >    outerjoin(u, Invitation.sender).\ 
> >    outerjoin(i, Invitation.invitee).\ 
> >    filter(Invitation.sender_id=5) 
> > 
> > 
> > 
> > понедельник, 18 марта 2019 г., 17:48:26 UTC+3 пользователь Mike Bayer 
> написал: 
> > 
> > 
> > On Sat, Mar 16, 2019 at 9:33 AM kosta <naum...@gmail.com> wrote: 
> > 
> > 
> > Hello everyone! 
> > 
> > I've designed invitation model 
> > class User(Base): 
> > __tablename__ = 'user' 
> > 
> > id = Column(Integer, primary_key=True) 
> > name = Column(String(64)) 
> > email = Column(String(64)) 
> > class Invitation(Base): 
> > __tablename__ = 'invitation' 
> > 
> > id = Column(Integer, primary_key=True) 
> > sender_id = Column(Integer, ForeignKey('user.id')) 
> > invitee_id = Column(Integer, ForeignKey('user.id'), unique=True) 
> > sender = relationship('User', foreign_keys=[sender_id], 
> backref='invite_list') 
> > invitee = relationship('User', foreign_keys=[invitee_id], 
> backref='invited_by', uselist=False) 
> > 
> > email = Column(String) 
> > phone = Column(String) 
> > token = Column(String) 
> > 
> > My logic is: 
> > 
> > 1. Create a new record in Invitation table: sender_id - current user, 
> email or phone and unique generated token. 
> > 2. Create a new record in User table keep received token, commit it. 
> > 3. Find a record in Invitation table by filter token and update filed 
> invitee_id == new_user.id 
> > 
> > 
> > My problem is backref return value for invited_by - return (of course) 
> Invitation record. 
> > My question is whether I've possibility return for invited_by User 
> record via Invitation table or not? 
> > 
> > 
> > you can find any record via anything, what SQL would you like to emit 
> please ? 
> > 
> > 
> > 
> > 
> > 
> > -- 
> > 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 sqlalchemy+...@googlegroups.com. 
> > To post to this group, send email to sqlal...@googlegroups.com. 
> > 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 sqlalchemy+...@googlegroups.com <javascript:>. 
> > To post to this group, send email to sqlal...@googlegroups.com 
> <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 a topic in the 
> Google Groups "sqlalchemy" group. 
> > To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/sqlalchemy/gv8QmGnl6lg/unsubscribe. 
> > To unsubscribe from this group and all its topics, send an email to 
> sqlalchemy+...@googlegroups.com <javascript:>. 
> > To post to this group, send email to sqlal...@googlegroups.com 
> <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 sqlalchemy+...@googlegroups.com <javascript:>. 
> > To post to this group, send email to sqlal...@googlegroups.com 
> <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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to