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 alias

    bei dem zweiten kommt das ein syntax error vorliegt.

    Hoffe jemand kann das verbessern ansonsten les ich mich grad schlau.

    mfg tobZel


Anmelden zum Antworten