"Tim Mohler" <[EMAIL PROTECTED]> wrote
in message
news:[EMAIL PROTECTED]
> select stories.*,tags.name from stories left outer join story_tags on
> stories.article_id = story_tags.article_id left outer join tags on
> story_tags.tag_id = tags.id and stories.article_id in (select
> article_id from stories  order by postingdate desc limit 0,20);

Try

select stories.*,tags.name from
    stories left outer join story_tags on stories.article_id = 
story_tags.article_id
    left outer join tags on story_tags.tag_id = tags.id
WHERE stories.article_id in (select article_id
  from stories  order by postingdate desc limit 0,20);

(the only difference from yours is that the last condition is moved into 
WHERE clause). I believe your original query selects the last 20 
articles as well as all articles that don't have any tags on them (which 
forces the engine to look at every article).

Igor Tandetnik 



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to