我有一堆自定义的post-type页脚元素,它们有一个元键footer_element_meta_alignment。现在,我试图获取三篇最新的文章,分别是meta_values12。所以,每一个都有这些价值观的帖子。
如何通过单一的SQL查询实现这一点?
这是我迄今为止的SQL查询:

"SELECT wposts.*, meta1.meta_value
FROM $wpdb->posts wposts, $wpdb->postmeta meta1
WHERE 1=1
AND wposts.post_type = 'footer_element'
AND wposts.post_status = 'publish'
AND wposts.ID = meta1.post_id
AND meta1.meta_key = 'footer_element_meta_alignment'
AND (meta1.meta_value = 1 OR meta1.meta_value = 2 OR meta1.meta_value = 3)
ORDER BY meta1.meta_value ASC";

然而,这将获取具有给定元值的所有元素,而不仅仅是最新的元素。
回答
回答了我自己的问题。

最佳答案

经过几个小时的努力,我找到了解决办法。
SQL语言

"SELECT *
 FROM (  SELECT p.*, m.meta_value AS meta
         FROM $wpdb->posts AS p
         LEFT JOIN $wpdb->postmeta AS m
         ON p.ID = m.post_id
         WHERE m.meta_key = 'footer_element_meta_alignment'
         AND p.post_status = 'publish'
         ORDER BY m.meta_value ASC, p.post_date DESC) AS h
 GROUP BY meta";

10-02 05:32