phpbar.de logo

Mailinglisten-Archive

[php] [1/2 OT] Mysql Query

[php] [1/2 OT] Mysql Query

Sebastian Mendel lists at sebastianmendel.de
Mon Mai 7 10:40:36 CEST 2007


Martin Walper schrieb:

> denke habe es nun hin bekommen:
> 
> SELECT v.indate, v.lcbid, v.maxvotes 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
> GROUP BY v.indate

^^ 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.



-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive