SELECT
時間がカスタムメタフィールドであるWordPressカスタムタイプから自分のパーソナルベストレースを見つけるためのカスタムクエリを作成しようとしています。
これは、投稿を選択するために使用したクエリです。MIN
デバッグのために簡略化しましたが、最終的にはいくつかの用語スラッグを選択し、それぞれを使用してを見つけたいと思います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」という用語の2つのレース/ランが選択され、それらの正しい時間/日付/タイトルが表示されます。
MIN
関数を追加すると問題が発生します。
SELECT t.slug,
p.ID,
p.post_date,
p.post_title,
MIN(m.meta_value) as pb_mins
正しい(最小)時間が選択されていますが、他の詳細(日付、タイトル)は他の10miラン/レースからのものです。
FROM
使用する句を変更しようとしましLEFT JOIN
たINNER JOIN
が、同じことが起こります。両方の「10mi」実行を選択することは問題ありませんが、MIN
関数を追加すると間違った出力が表示されます。
あなたが提供できるどんな助けにも感謝します。これは私の最初の投稿ですので、さらに詳細を追加する必要がある場合はお知らせください。