Vicenzo, just a couple of thoughts.

1.  Three joins is not database intense.  Joining tables is what they do. 
 Correct indexing is the key to good performance.

2.  If you have found a way to get Web2py to fetch the data, it is just 
doing the join for you behind the scenes.  Same difference.



On Saturday, July 28, 2012 5:25:33 PM UTC-4, Vincenzo Ampolo wrote:
>
> On 07/28/2012 03:38 AM, Alec Taylor wrote: 
> > Vincenzo: Have you looked at: https://github.com/niphlod/w2p_tvseries 
>
> What is that ? I can't figure out from the "objectives" section what 
> that application does... 
>
> On 07/28/2012 05:37 AM, Cliff Kachinske wrote:> You need to define a set 
> that includes all three tables in the relation. 
> > 
> > ((db.genres.id==db.movies_genres.genres_id) & 
> > (db.movies_genres.movie_id==db.movies.id)) 
> > 
> > To get the set of genres for a specific movie, do 
> > 
> > | 
> > ((db.genres.id==db.movies_genres.genres_id)& 
> > (db.movies_genres.movie_id==db.movies.id)& 
> > (db.movies.id==1))# or whatever variable you like 
> > | 
> > 
> > 
> > Notice this query allows you to retrieve information from all three 
> > tables at one time. 
>
> Which is exactly like the web2py books suggests. Btw to retrieve all the 
> information of a movie in one shot (so join movie with genres with casts 
> with pictures) may be really database intense (3 joins!) So after a bit 
> of hacking I figured out a simply way to accomplish the same goal: 
>
> web2py automatically add the many-to-many sets to an instance with the 
> same name of the relation table. In my case I've movie.movies_genres for 
> each movie. Given so I can easily get the genres of a movie in a 
> template just doing. 
>
> In [36]: for m in movie.movies_genres.select(): print m.genre.name 
> Thriller 
>
> Best Regards, 
>
> -- 
> Vincenzo Ampolo 
> http://vincenzo-ampolo.net 
> http://goshawknest.wordpress.com 
>

-- 



Reply via email to