Ich versuche, eine benutzerdefinierte SELECT
Abfrage zu finden, um meine persönlichen besten Rennen von WordPress Custom Types, wo die Zeiten sind eine benutzerdefinierte Meta-Feld.Verwenden von MIN in WordPress benutzerdefinierte SELECT-Abfrage
Dies ist die Abfrage, die ich verwendet habe, um die Beiträge auszuwählen. Ich habe es für die Fehlersuche vereinfacht, aber schließlich möchte ich mehrere Begriff Schnecken auszuwählen und die MIN
für jede Verwendung GROUP BY
zu finden:
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')
(ich die Ergebnisse in ein Array ausgibt und mit print_r
es vorübergehend zu überprüfen .)
Dies wählt die zwei Rennen/Läufe mit dem '10mi' Begriff aus und zeigt die richtigen Zeiten/Datum/Titel für sie an.
Das Problem kommt, wenn ich die MIN
Funktion hinzufügen:
SELECT t.slug,
p.ID,
p.post_date,
p.post_title,
MIN(m.meta_value) as pb_mins
Die richtige (Minimum) Zeit gewählt ist, aber die anderen Details (Datum, Titel) von dem anderen 10mi run/Rennen.
Ich habe versucht, die FROM
Klausel zu ändern LEFT JOIN
zu verwenden und auch INNER JOIN
aber das gleiche passiert: es ist in Ordnung für die Auswahl beiden Läufe ‚10mi‘, sondern gibt den falschen Ausgang, wenn ich die MIN
Funktion hinzuzufügen.
Danke für jede Hilfe, die Sie anbieten können. Dies ist mein erster Beitrag hier also lass es mich wissen, wenn ich weitere Details hinzufügen muss.
UPDATE: Die Verwendung von 'ORDER BY m.meta_value LIMIT 1' anstelle von' MIN' erzeugt das korrekte Ergebnis, aber ich weiß nicht, wie ich dies auf mehr als einen Term-Slug extrapolieren würde, ohne die Abfrage zu replizieren. Sicher muss es möglich sein, dies mit 'MIN' und' GROUP BY' zu tun? – seestevecode
Dann brauchen Sie eine ['[greatest-n-per-group]'] (http://stackoverflow.com/questions/tagged/greatest-n-per-group) Abfrage. –
Vielen Dank für den Tipp @ypercube. Es hat mir geholfen, die Lösung zu finden, die ich unten veröffentlicht habe. Ich fürchte, ich weiß nicht, wie ich Ihnen mit der Hilfe mehr Kredit geben soll, da Sie es nicht als Antwort gepostet haben. Es ist jedoch sehr geschätzt. – seestevecode