WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   väldigt jobbig kanske omöjlig sql (https://www.wn.se/forum/showthread.php?t=23194)

spyvingen 2007-08-28 09:56

hej jag har en table som ser ut så här
Kod:

id            int(10)      NO  PRI  NULL  auto_increment
steamid_killer  varchar(20)  YES        NULL 
steamid_victim  varchar(20)  YES        NULL 
weapon        varchar(15)  YES        NULL 
headshot      varchar(1)  YES        NULL 
killtime        datetime  YES        NULL

Och det är till för ett statistik script för min cs server.
och varje rad som skapas i db:n är en kill.

Det jag skulle vilja ha ut är hur många ggr man har dödat någon och hur många ggr. man har blivit dödad och hur många ggr. man tagit själv mord alltså en count för varje sak nu till problemet dom tre sakerna är ju busenkla att få ut men nu skulle jag vilja ha detta i en och samma sql så jag kan loopa ut alla användare med dessa tre skaer utn att köra tre sql:er för varje user.

Vet inte om det är mojligt med tanke på att man måsteräkna samma rad flera ggr.

M.V.H. Jonas

rille77 2007-08-28 11:42

strSQL = "(SELECT COUNT(*) FROM tabell WHERE steamid_killer = user_id) AS steamid_killer, (SELECT COUNT(*) FROM tabell WHERE steamid_victim = user_id) AS steamid_victim" etc etc

spyvingen 2007-08-28 12:05

aha okej då var det nog inte så svårt som jag trodde :)

Blir denna väldigt krävande för servern??

Tack så mycket för hjälpen

spyvingen 2007-08-28 12:41

kom på nu att det blir ju lite fel

jag tånkte så här

select (select count ... where steamid_killer = *****) as kills ,steamid_killer from kill_stat order by steamid_killer limit 10

så att jag sen kan köra en loop som loopar ut alla stemid_killer och respektive data från sqlen så jag slipper köra en trippel sql för alla och sen sortera ut vilka som har mest kills

frågan är om man kan där jag har ***** om man kan sätta in det steamid som sql håller på att countar nu.

Hoppas du förstår vad jag menar.

Ex.

en sql som ger resultatet

rs("steamid")
rs("kills)
rs("deaths)
rs("suiside)

för varje user

spyvingen 2007-08-28 14:34

nånting typ som detta fast en som funkar då :)
detta är bara ett exempel på hur jag vill ha infon

select count(steamid_killer) as antal_kills, count(steamid_victim) as antal_death,
steamid_killer
from kill_stat
group by antal_kills,antal_death
order by antal_kills desc
limit 30


Alla tider är GMT +2. Klockan är nu 02:23.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson