2012-04-24 8 views
0

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

カスタム分類法をプラグインとマージしようとしています。プラグインを使用するには、私の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 

そして、これはどのように私は1つのクエリにこのすべてをマージして行く必要があり、私の分類で

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

いったん入荷したら、ホーマーになりますか? –

+0

@DavidYell私はあなたが私の質問を読んだことを領収書として取る:P – Jacksonkr

答えて

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 

醜いかもしれませんが、動作します。

関連する問題