SQL-从远程WordPress WooCommerce数据库获取特定类别的产品

时间:2014-07-23 作者:john254

我连接到db并成功地提取了产品数据。现在我想展示特定类别的产品。这家商店正在使用woocommerce。登录页位于不同的位置,因此我无法导入wp函数。

以下是我目前的想法:

SELECT ID, `post_date` ,  `post_title` ,  `post_content` ,  `guid` FROM  `wp_posts` as post

INNER JOIN wp_term_relationships rs ON rs.object_id = post.ID 
INNER JOIN wp_terms t ON t.term_id = rs.term_taxonomy_id 


WHERE  `post_type` =  "product"  
AND  `post_status` =  "publish"     
AND rs.term_taxonomy_id  = 117

ORDER BY post_date DESC LIMIT 5
什么都没发生。如果我删除AND rs.term_taxonomy_id = 117 它像以前一样工作。5最旧的产品出现。不是特定类别的产品。我错过了什么?

2 个回复
SO网友:ksr89

我检查了您的查询,它工作正常,没有任何错误或空结果。但除此之外,如果您删除INNER JOIN 从…起wp_terms 表也可以工作,因为您没有从该表中获得任何东西,并且它没有在中使用WHERE 第条也是。

SELECT ID, `post_date` ,  `post_title` ,  `post_content` ,  `guid` FROM  `wp_posts` as post

INNER JOIN wp_term_relationships rs ON rs.object_id = post.ID 

WHERE  `post_type` =  "post" //post type post for my example
AND  `post_status` =  "publish"
AND rs.term_taxonomy_id  = 1 //term_taxanomy_id is 1 for my example

ORDER BY post_date DESC LIMIT 5

SO网友:user2157737
SELECT 
        `ID`, 
        `post_title`,
        `guid`      
FROM 
        posts 
WHERE 
        post_type=\'product\' and 
        post_status=\'publish\' and 
        ID IN(
                SELECT 
                        object_id 
                FROM 
                        term_relationships 
                WHERE 
                        term_taxonomy_id IN(YOUR_CATEGORY_ID_OR_MULTIPLE_IDS_COMMA_SEPARATED ) and
                        term_taxonomy_id IN(
                                            SELECT 
                                                term_taxonomy_id 
                                            FROM 
                                                term_taxonomy 
                                            where 
                                                taxonomy=\'product_cat\' )
                                           )
结束

相关推荐

当网站恢复时,WP在MySQL上遇到查询

我正在从VM上的本地开发人员运行我的网站。除恢复位外,其他一切正常。当我恢复机器时,系统地加载WP需要很长时间。实际上,问题不在于WP本身,而在于MySQl和WP对DB的查询。使用以下命令查看系统挂起的查询/进程mysql -uUSERNAME -pPASSWORD DATABASE -e \"show processlist;\" 返回以下内容| 203 | jumpinuk | localhost:60327 | jumpinuk | Query | 0 | closing tab