繁体   English   中英

mysql合并两个查询

[英]mysql merge two queries

我正在尝试合并这两个查询,但是我对mysql不太热。 我怀疑我需要使用INNER JOIN还是子查询?

我正在尝试将自定义分类法与插件合并。 该插件要求我使用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

我应该如何将所有这些合并到一个查询中?

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

它可能很难看,但是可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM