Vitaly,

This looks like there might be some room for performance improvement...

> MS> I didn't see the table structure, but I assume
> MS> that the vote_avg and
> MS> vote_count fields are in bv_bookgenres.
>
> I didn't understand you. vote_avg is stored in bv_books.

Ok. That helps. The confusion (on my end) came from the SELECT clause of the query you provided:

> SELECT     bv_books. * ,
>            vote_avg,
>            vote_count

All fields from bv_books were selected (bv_books.*) along with vote_agv and vote_count. My assumption was that vote_avg and vote_count were therefore not in bv_books.

At any rate, a query with an IN clause should help quite a bit:

SELECT     bv_books. *
FROM       bv_books
WHERE      bv_books.book_id IN (
              SELECT book_id
              FROM bv_genres
              WHERE bv_bookgenres.genre_id = 5830
              )
ORDER BY   vote_avg DESC LIMIT 10 OFFSET 0;

Give it a whirl.

Marty


---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to