Larry,

Restating your SQL in a more reader-friendly form:

SELECT timestamp
FROM serendipity_entries e
    , serendipity_category c
    , serendipity_entrycat ec
LEFT OUTER JOIN serendipity_entryproperties ep_cache_extended
    ON (e.id = ep_cache_extended.entryid
        AND ep_cache_extended.property = 'ep_cache_extended')
LEFT OUTER JOIN serendipity_entryproperties ep_cache_body
    ON (e.id = ep_cache_body.entryid
        AND ep_cache_body.property = 'ep_cache_body')
LEFT OUTER JOIN serendipity_entryproperties ep_access
    ON (e.id = ep_access.entryid
        AND ep_access.property = 'ep_access')
LEFT JOIN serendipity_entryproperties ep_sticky
    ON (e.id = ep_sticky.entryid
        AND ep_sticky.property = 'ep_is_sticky')
WHERE e.timestamp >= 1109656800
    AND e.timestamp <= 1112335200
    AND e.timestamp <= 1110241185
    AND e.isdraft = 'false'
    AND ( ep_access.property IS NULL
        OR ep_access.value = 'member'
        OR ep_access.value = 'public'
        OR (ep_access.value = 'private'
            AND e.authorid = 1)
        )
    AND e.id = ec.entryid
    AND c.categoryid = ec.categoryid
    AND c.category_left BETWEEN 3 AND 4


I can see you're using a lot of left joins. You are beginning your left joins off of ec, so I believe neither e nor c can be referenced as join conditions. It might work if you reorder the first part of the FROM clause as the following:


FROM serendipity_category c
    , serendipity_entrycat ec
    , serendipity_entries e
LEFT OUTER JOIN serendipity_entryproperties ep_cache_extended

(Though I can't be sure without seeing table definitions.)

It also appears you have a redundant e.timestamp constraint in the WHERE clause: if e.timestamp is >= 1110241185 it's definitely going to be <= 1112335200

Hope this helps. I find white space helps me read my own SQL much more easily.

Michael Glaesemann
grzm myrealbox com


---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly

Reply via email to