views:

43

answers:

1

I need to retreive a list of posts that have (at least) one attachment that belongs to a category in WordPress.

The relation between attachments and categories I made by myself using the WordPress default method.

Here's the query that i'm running right now:

SELECT post.*
FROM `bma_posts` AS post
WHERE
    EXISTS (
        SELECT 1
        FROM `bma_posts` AS attachment
        JOIN `bma_term_relationships` AS relationship ON
            relationship.`object_id` = attachment.`ID`
            AND
            relationship.`term_taxonomy_id` IN (17,15,16,5)
        WHERE
            attachment.`post_parent` = post.`ID`
            AND
            attachment.`post_type` = 'attachment'
    )
    AND
    post.`post_type` = 'post'
    AND
    post.`post_status` = 'publish'
ORDER BY post.`post_date` DESC
LIMIT 3

The problem now is that I can't get the attachment.ID to know "who" included that post on the query.

+1  A: 
Select ...
From wp_posts As P
Where Exists    (
                Select 1
                From wp_posts As P1
                    Join wp_term_relationship As WTR1
                        On WTR1.object_id = P1.ID
                            And WTR1.term_taxonomy_id In(3)
                Where P1.post_parent = P.Id
                    And P1.post_type = 'attachment'
                )
    And P.post_type = 'post'
Order By p.post_date DESC
Limit 15    
Thomas
I'll test it tomorow and let you know if it works. :)
TiuTalk
See my update. :(
TiuTalk
@TiuTalk - Ah. You did not mention what you needed in the result beyond the wp_posts table. Can you provide a sample of the output you are seeking.
Thomas