komplizierter SQL Query
-
hallo ich versuche gerade einen SQL Query zu erstellen komme aber nicht weiter. Das will ich machen (es geht um eine counterstrike online statistik):
Ich hab zwei tabellen:
player: (speichert alle spieler)
IP Name
kills: (loggt alle kills)
KillerIP VictimIP
Hoffe die Namen der spalten sind eindeutig
Jetzt will ich, dass ich folgenden output erhalte:
IP Name Kills Deaths
Das will ich auch noch sortieren können aber ich denke das geht dann über ein einfaches ORDER BY?
Die IPs der Killer oder Victims kommt sicher in der tabelle player vor, da er ansonsten sofort von einem script gekickt wird.
Ich würds GERNE selber machen habs schon ne halbe stunde probiert komme aber einfach nicht weiter!
Bei fragen einfach melden!
mfg tobZel
-
dürfte in etwa so aussehen:
select ip, name, sum(kills) as kills, sum(deaths) as deaths from ( select ip, name, count(victimip) as kills, 0 as deaths from player p left join kills k on (p.ip = k.killerip) group by ip, name union all select ip, name, 0 as kills, count(killerip) as deaths from player p left join kills k on (p.ip = k.victimip) group by ip, name ) a where name = 'der gesuchte spieler' group by ip, name
-
Faultier... du hattest ja nichtmal nen Ansatz. Immer schön andere Leute die Arbeit machen lassen.
SELECT ip, name, COUNT(k1.) as kills, COUNT(k2.) as deaths FROM player LEFT JOIN kills k1 ON player.ip = k1.ip LEFT JOIN kills k2 ON player.ip = k2.ip GROUP BY name ORDER BY kills DESC, deaths ASC
-
bei dem ersten bekomme ich als error:
Every table must have its own aliasbei dem zweiten kommt das ein syntax error vorliegt.
Hoffe jemand kann das verbessern ansonsten les ich mich grad schlau.
mfg tobZel