Mailinglisten-Archive |
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