首页 > 解决方案 > 无法按元值排序帖子

问题描述

我正在尝试获取Wordpress帖子列表,并使用meta_key= "zoacres_property_price" 以 DESC 顺序对它们进行排序,所以我这样做了:

SELECT SQL_CALC_FOUND_ROWS p.* 
                      FROM wpps_posts p
                     CROSS
                      JOIN wpps_postmeta m
                     INNER
                      JOIN wpps_term_relationships r
                        ON p.ID = r.object_id
                     WHERE r.term_taxonomy_id IN (76) 
                       AND p.post_type = 'zoacres-property' 
                       AND p.post_status = 'publish'  
                       AND m.meta_key = 'zoacres_property_price'
                     GROUP 
                        BY p.ID 
                     ORDER 
                        BY m.meta_value ASC 
                    LIMIT 6, 6

不幸的是我收到了这个错误:

on 子句中的未知列 wpps_posts.ID

我做错了什么?列存在

标签: mysqlsqlwordpress

解决方案


永远不要FROM子句中使用逗号!

我猜您实际上想通过其他两个表中的条件过滤帖子。所以,我怀疑你想要LEFT JOIN

SELECT SQL_CALC_FOUND_ROWS wpps_posts.* 
FROM wpps_posts p JOIN
     wpps_term_relationships tr
     ON p.ID = tr.object_id AND tr.term_taxonomy_id IN ('76') JOIN
     wpps_postmeta pm
     ON p.ID = pm.post_id
WHERE p.post_type = 'zoacres-property' AND
      p.post_status = 'publish' 
      pm.meta_key = 'zoacres_property_price'
ORDER BY pm.meta_value ASC
LIMIT 6, 6

推荐阅读