Mailinglisten-Archive |
Jo, leider ist der Ausgang dieser Datenbasis nicht optimal, aber lässt sich leider nicht ändern. Im Projekt geht es um Logfiles, die von einem Spiele-Server gepostet werden, und bei jeder aktion einen Eintrag in die Datenbank erstellen. Es muss zu doppelten einträgen kommen (bis auf das Datum) da ich ja auch gerne mal ein und den selben Spieler kille. Hier ein Auszug aus der echten Datenbasis: +-----+--------------------------+--------------------------+---------+--------+---------------------+---------+ | id | user | param1 | param2 | param3 | tstamp | message | +-----+--------------------------+--------------------------+---------+--------+---------------------+---------+ | 1 | WvW|Baldur | | | | 2001-02-26 14:47:15 | 6 | | 2 | WvW|Baldur | -[IX]-Hurz_the_Woodfairy | usp | | 2001-02-26 14:50:14 | 4 | | 3 | -[IX]-Hurz_the_Woodfairy | WvW|Baldur | usp | | 2001-02-26 14:50:14 | 5 | | 4 | WvW|Baldur | -[IX]-Hurz_the_Woodfairy | m4a1 | | 2001-02-26 14:52:11 | 4 | | 5 | -[IX]-Hurz_the_Woodfairy | WvW|Baldur | m4a1 | | 2001-02-26 14:52:11 | 5 | Wobei die message Nr die aktion bedeutet. 4 z.B. bedeutet "killed", also id 2 heisst "WvW|Baldur killed Hurz with usp". Es gibt auch messages, die nur einen Parameter haben. 6 z.b. heisst selfkilled. Falls es jemanden interessiert: Es geht um einen Statsgenerator für das Spiel counterstrike. Naja, und als Erbegnis brauche ich in einer Abfrage eine Tabelle (Damit ich das gescheit sortieren kann..es werden vielzuviele Datensätze, um das in PHP zu sortieren): User kills deaths selfkills Baldur 1 10 1 ... ***********schnipp*********** On 28.02.2001 at 11:49 Andreas Kretschmer wrote: >am Wed, dem 28.02.2001, um 10:43:35 +0100 mailte Pete aka WvW|Baldur >folgendes: >> Hy. Folgendes Problem habe ich: >> Ich habe folgende Datenbasis: >> >> Name Message >> >> Harry 1 >> Klaus 2 >> Harry 2 >> Dieter 2 >> Harry 1 >> Harry 1 >> Harry 3 > >Diese ist aber nicht gut, da identische Zeilen mehrfach vorkommen >können. Besser währe IMHO: > >Name Message Count > >> >> >> Als Ergebnis brauche ich (und zwar mit einer einzigen Abfrage, da ich >sonst >> >> Name SumMsg1 SumMsg2 SumMsg3 >> Harry 3 1 1 >> Dieter 0 1 0 >> Klaus 0 1 0 > >Das würde zumindest bedingen, daß die Anzahl der Ergebnisspalten bekannt >ist. Wieviel Message-Nummern können auftauchen? > > >Was spricht bei Deiner Tabellenstruktur gegen folgende Abfrage: > >mysql> select name, message, count(message) from teilsumme group by >name, message; >+--------+---------+----------------+ >| name | message | count(message) | >+--------+---------+----------------+ >| dieter | 2 | 1 | >| harry | 1 | 3 | >| harry | 2 | 1 | >| harry | 3 | 1 | >| klaus | 2 | 1 | >+--------+---------+----------------+ >5 rows in set (0.00 sec) > >Dann hast Du das in der Struktur, die ich oben vorschlug. > > >In Paradox (nicht hauen) gab es IMHO eine Funktion für eine >Kreuztabelle, das scheint mir das zu sein, was Du suchst. Aber ich >glaube, du solltest nicht in diesen Weg suchen. > > >Bei der Gelegenheit: >- bitte kein HTML >- Sig ist falsch/nicht abgetrennt > > >Andreas >-- >Diese Message wurde erstellt mit freundlicher Unterstützung eines frei- >laufenden Pinguins aus artgerechter Freilandhaltung. Er ist garantiert >frei von Micro$oft'schen Viren. (#97922 http://counter.li.org) >Was, Sie wissen nicht, wo Kaufbach ist? : N 51.05082°, E 13.56889° ;-) > >--- >*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql ***********schnapp************* --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive