我正在尝试创建一个自定义SELECT
查询,以从 WordPress 自定义类型中找到我的个人最佳比赛,其中时间是自定义元字段。
这是我用来选择帖子的查询。我已经简化了它以进行调试,但最终我想选择几个术语 slug 并找到MIN
每个 using GROUP BY
:
SELECT t.slug,
p.ID,
p.post_date,
p.post_title,
m.meta_value as pb_mins
FROM $wpdb->posts p,
$wpdb->postmeta m,
$wpdb->term_relationships tr,
$wpdb->term_taxonomy tt,
$wpdb->terms t
WHERE p.ID = tr.object_id
AND p.ID = m.post_id
AND tr.term_taxonomy_id = tt.term_taxonomy_id
AND tt.term_id = t.term_id
AND p.post_type = 'runs'
AND m.meta_key = 'ssr_duration_min'
AND t.slug in ('10mi')
(我将结果输出到一个数组并print_r
用于临时检查它。)
这将选择两个带有“10mi”术语的比赛/跑步,并为它们显示正确的时间/日期/标题。
当我添加MIN
函数时问题来了:
SELECT t.slug,
p.ID,
p.post_date,
p.post_title,
MIN(m.meta_value) as pb_mins
选择了正确的(最短)时间,但其他详细信息(日期、标题)来自其他 10 英里的跑步/比赛。
我尝试更改FROM
要使用的子句,LEFT JOIN
但INNER JOIN
同样的事情发生了:选择两个“10mi”运行都很好,但是当我添加MIN
函数时会给出错误的输出。
谢谢你尽你所能的帮助。这是我在这里的第一篇文章,所以如果我需要添加更多细节,请告诉我。