【发布时间】:2015-08-13 01:18:24
【问题描述】:
在 WordPress 安装中,我需要订购产品以便:
- 售出的产品最后出现。
- 标记为“古董”的已售产品显示在标记为“复制品”的已售产品之后。
我已经成功完成了第一项,但我对第二项感到茫然。我没有收到任何错误。我的问题是我的 ORDER BY 语句中的所有内容都在工作,除了“wt.slug DESC”。如果我将 wp_term_taxonomy 和 wp_terms 表的 LEFT JOIN 语句更改为 INNER JOIN 语句,我会得到 0 个结果,所以在我看来,这些语句没有找到我期望的结果。这是我的查询:
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
LEFT JOIN wp_postmeta stock ON ( wp_posts.ID = stock.post_id AND stock.meta_key = '_stock_status' )
LEFT JOIN wp_term_taxonomy wtt ON ( wp_term_relationships.term_taxonomy_id = wtt.term_taxonomy_id AND wtt.taxonomy = 'product_tag' )
LEFT JOIN wp_terms wt ON ( wtt.term_id = wt.term_id AND ( wt.slug = 'antique' OR wt.slug = 'reproduction' ) )
WHERE 1=1
AND ( wp_term_relationships.term_taxonomy_id IN (171) )
AND ( ( wp_postmeta.meta_key = '_visibility' AND CAST(wp_postmeta.meta_value AS CHAR) IN ('visible','catalog') ) )
AND wp_posts.post_type = 'product'
AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_type DESC, stock.meta_value ASC, wt.slug DESC, wp_posts.post_date
这里是WordPress database description 供参考。我将不胜感激。
【问题讨论】:
-
您得到什么错误消息和/或输出?在对 Wordpress 架构知之甚少的情况下消化查询有点困难。
-
我已经更新了我的问题,以明确我遇到的问题,并链接到数据库描述(带有架构图像)。
标签: mysql wordpress woocommerce