On Wed, Jan 31, 2007 at 09:10:48AM -0500, Fred C wrote:
> This code seems to generate a wrong request
> 
>          items = RssItem.select(AND(SnapShot.q.day == today,
>                                     SnapShot.q.category == catid),
>                  join=(LEFTJOINOn(RssItem, SnapShot,
>                                   RssItem.q.id == SnapShot.q.rssitemID),
>                        LEFTJOINOn(RssItem, Rss,
>                                   RssItem.q.rssID == Rss.q.id)),
>                                 orderBy='-rank')
> 
> This is the request generated by this abouve code.
> 
> SELECT rss_item.id, rss_item.itemhash, rss_item.link, rss_item.title,  
> rss_item.summary, rss_item.updated, rss_item.rate, rss_item.rss_id,  
> rss_item.relations_updated FROM  rss_item LEFT JOIN snap_shot ON  
> ((rss_item.id) = (snap_shot.rssitem_id)) rss_item LEFT JOIN rss ON  
> ((rss_item.rss_id) = (rss.id)) WHERE (((snap_shot.day) =  
> ('2007-01-30')) AND ((snap_shot.category) = (1))) ORDER BY rank DESC
> 
> And it should be generating this sql request (without "rss_item"  
> between the two joins)
> 
> SELECT rss_item.id, rss_item.itemhash, rss_item.link, rss_item.title,  
> rss_item.summary, rss_item.updated, rss_item.rate, rss_item.rss_id,  
> rss_item.relations_updated FROM  rss_item LEFT JOIN snap_shot ON  
> ((rss_item.id) = (snap_shot.rssitem_id)) LEFT JOIN rss ON  
> ((rss_item.rss_id) = (rss.id)) WHERE (((snap_shot.day) =  
> ('2007-01-30')) AND ((snap_shot.category) = (1))) ORDER BY rank DESC

   Try this change:

                       LEFTJOINOn(None, Rss,

   That is:

         items = RssItem.select(AND(SnapShot.q.day == today,
                                    SnapShot.q.category == catid),
                 join=(LEFTJOINOn(RssItem, SnapShot,
                                  RssItem.q.id == SnapShot.q.rssitemID),
                       LEFTJOINOn(None, Rss,
                                  RssItem.q.rssID == Rss.q.id)),
                                orderBy='-rank')

Oleg.
-- 
     Oleg Broytmann            http://phd.pp.ru/            [EMAIL PROTECTED]
           Programmers don't die, they just GOSUB without RETURN.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
sqlobject-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to