thanks for the quick answer Michael.

What I want turns out to be:

q = s.query(Episode, Show)\
         .join(Show).\
         .filter(Episode.airdate.between(date1, date2))\
         .filter(Show.users.any(User.id==2))\

KISS:)

On Mar 28, 10:16 pm, "Michael Bayer" <[email protected]> wrote:
> this depends on if you want Episodes that only have shows which are bound
> to that user.   this would be:
>
> q = s.query(Episode, Show)\
>         .join(Episode.shows).\
>         .filter(Episode.airdate.between(date1, date2))\
>         .filter(~Show.users.any(User.id==2))
>
> to get *all* episodes, you'd have to use a subquery:
>
> subq = s.query(Show).filter(~Show.users.any(User.id==2)).subquery()
> show_alias = aliased(Show, subq)
>
> q = s.query(Episode, show_alias)\
>         .join((show_alias, Episode.shows)).\
>         .filter(Episode.airdate.between(date1, date2))
>
> Domen Kožar wrote:
>
> > models: User, Show, Episode
>
> > Show 1-----n Episode
> > User n------n Show
>
> > so: shows can have multiple episodes and different users can have
> > different shows
>
> > I want to construct a query that will:
>
> > - check if episode dates to specific date
> > - join all shows on that episode
> > - filter out shows that are not bound to specific user
>
> > the query that is not working correctly is:
>
> >             AShow = aliased(Show)
> >             q = s.query(Episode, AShow)\
> >                     .filter(Episode.airdate.between(date1, date2))\
> >                     .filter(User.userID == 2)\
> >                     .join(User.relShows)\
> >                     .join(AShow)
>
> > (User.relShows is the n-n relation to Shows that lists all shows which
> > one user posseses)
>
> > If I haven't explained myself enough, please say so. I have no idea
> > where I'm failing:)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to