I wrote a mySQL query that is just works as I need.
SELECT COUNT(wp_posts.ID) as count, wp_terms.term_id
FROM wp_terms
INNER JOIN wp_term_taxonomy ON wp_term_taxonomy.term_id = wp_terms.term_id AND wp_term_taxonomy.taxonomy = "post_tag"
INNER JOIN wp_term_relationships ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_id
INNER JOIN wp_posts ON wp_posts.ID = wp_term_relationships.object_id AND wp_posts.post_date >= DATE_SUB(NOW(),INTERVAL 24 HOUR) AND wp_posts.post_status = "publish"
GROUP BY wp_terms.term_id ORDER BY count DESC;
As you can see that, I have conditions when I'm joining to tables to eachother.
But I really, what is changes if I also add a WHERE
statement to the end?
Like this:
SELECT COUNT(wp_posts.ID) as count, wp_terms.name
FROM wp_terms
INNER JOIN wp_term_taxonomy ON wp_term_taxonomy.term_id = wp_terms.term_id AND wp_term_taxonomy.taxonomy = "post_tag"
INNER JOIN wp_term_relationships ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_id
INNER JOIN wp_posts ON wp_posts.ID = wp_term_relationships.object_id AND wp_posts.post_date >= DATE_SUB(NOW(),INTERVAL 24 HOUR) AND wp_posts.post_status = "publish"
WHERE wp_posts.post_date >= DATE_SUB(NOW(),INTERVAL 24 HOUR) AND wp_posts.post_status = "publish" AND wp_term_taxonomy.taxonomy = "post_tag"
GROUP BY wp_terms.term_id ORDER BY count DESC;
They both gives me the same results.
I really wonder, what is the diffirince?