phpbar.de logo

Mailinglisten-Archive

[php] [1/2 OT] Mysql Query

[php] [1/2 OT] Mysql Query

Martin Walper martin at klickhere.com
Mon Mai 7 11:32:15 CEST 2007


Sebastian Mendel schrieb:
> ^^ wozu?
> damit ziehst du alle Datensätze die gleichhohe Votes haben in einem Monat
> zusammen, ohne genu zu definieren welcher der beiden oder mehreren
> Datensätze nun gnommen werden soll, dein Ergebniss ist also 'zufällig' wenn
> mehrere Datensätze identische Votes haben. Im MySQL Handbuch steht dazu auch
> extra das das Ergebnis so nicht vorhersagbar ist.
>
> sprich ID 1 und 2 haben beide 30 Votes im Januar, dann weißt du nie ob du ID
> 1 oder ID 2 bekommst, und das auch noch bei jeder Abfrage, sprich es kann
> sich bei jeder Afbrage ändern ob du ID 1 oder 2 bekommst.
>
>
> eventuell könntest du noch einen Zeitstempel des letzten Votes anlegen und
> dann den nehmen der als erster die meißten Votes erreicht hat.
>
>
>
>   

Du hast schon recht, das es eher zufällig ist, welcher Datensatz
genommen wird.
Aber das ist nicht weiter schlimm, da diese Abfrage nur einmal monatlich
eine xml auswirft bzw. schreibt.
Mit dem Zeitstempel ist keine schlechte Idee, mal sehen ob ich das hin
bekomme.
Die Query ist inzwischen auf ein weitere left join angewachsen, das die
lcb Daten anhand der lcbid ermittelt und mit ausgibt.
Frage mich, wie ich da noch ein weiteres MIN() und HAVING oder was auch
immer rein bekomme.

SELECT v.indate AS `date`, lcb.id AS `id`, lcb.nick AS `nick`, lcb.img
AS `img`, lcb.altimg AS `altimg`, v.maxvotes AS `votes` FROM
(
    SELECT
        l.indate,
        l.lcbid,
        l.votes,
        MAX(l2.votes) AS maxvotes
    FROM
        lcb_vote AS l
    LEFT JOIN
        lcb_vote AS l2
    ON
        l.indate = l2.indate
    GROUP BY
        l.indate,
        l.lcbid
    HAVING    maxvotes = l.votes
) AS v
LEFT JOIN
    lcb_lcb lcb
ON
    v.lcbid = lcb.id
GROUP BY v.indate
ORDER BY v.indate DESC
LIMIT 12

Aber danke für den Hinweis, wenn du noch eine Idee auf Basis der
jetzigen query hast, würde mich das sehr freuen ;-).

MfG
Martin Walper

-- 
Martin Walper
martin at klickhere.com

Webdesign & Hosting
http://www.klickhere.com
Tel.:(0034) 96 583 4119


php::bar PHP Wiki   -   Listenarchive