2012-04-24 114 views
0

我试图合并这两个查询,但我没有这么热与MySQL。我怀疑我需要使用INNER JOIN或子查询?mysql合并两个查询

我试图合并一个自定义分类与插件。该插件要求我使用SQL访问我的Wordpress数据库。下面是从插件查询:

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

一旦你想成为你的本垒打? – 2012-04-24 16:13:53

+0

@DavidYell我会把它当成收据来阅读我的问题:P – Jacksonkr 2012-04-24 16:22:20

回答

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 

它可能是丑陋的,但它的工作原理。