0

私はこれら 2 つのクエリをマージしようとしていますが、mysql にはあまり興味がありません。INNER JOINまたはサブクエリを使用する必要があると思われますか?

カスタム分類をプラグインとマージしようとしています。プラグインでは、Wordpress データベースに SQL でアクセスする必要があります。プラグインからのクエリは次のとおりです。

SELECT p.*
FROM {$wpdb->prefix}most_popular mp
INNER JOIN {$wpdb->prefix}posts p ON mp.post_id = p.ID
WHERE
    p.post_type = '%s' AND
    p.post_status = 'publish'
{$order}
LIMIT %d

これは私の分類法でコンテンツを除外するクエリです

SELECT SQL_CALC_FOUND_ROWS  wp_posts.* 
FROM wp_posts  
INNER JOIN wp_term_relationships 
ON (wp_posts.ID = wp_term_relationships.object_id) 
WHERE 1=1  
    AND ( wp_term_relationships.term_taxonomy_id IN (38) ) 
    AND wp_posts.post_type = 'post' 
    AND (wp_posts.post_status = 'publish') 
GROUP BY wp_posts.ID 
ORDER BY wp_posts.post_date 
DESC LIMIT 0, 10

これらすべてを 1 つのクエリにマージするにはどうすればよいですか?

4

1 に答える 1

0
SELECT p.*, wpt.*
FROM (SELECT * FROM {$wpdb->prefix}terms AS wpt1 WHERE wpt1.name='$loc' LIMIT 1) AS wpt
    , {$wpdb->prefix}most_popular AS mp
INNER JOIN {$wpdb->prefix}term_relationships wptr ON (mp.post_id = wptr.object_id) 
INNER JOIN {$wpdb->prefix}posts p ON mp.post_id = p.ID
WHERE 1=1
    AND ( wptr.term_taxonomy_id = wpt.term_id )
    AND p.post_type = '%s'
    AND p.post_status = 'publish'
{$order}
LIMIT %d

醜いかもしれませんが、うまくいきます。

于 2012-04-25T16:01:29.850 に答える