Hente "liste" fra sql

Tags:    php

Hej
Jeg har en sql database som ser sådan ud:
id
spillernavn
dato
spilletid

hver kamp bliver altså lang ind som en linie... men nu vil jeg gerne have en liste ud over hvormange kampe de forskellige spillere har spillet! den skal altså summere på spillerid men det kan jeg sku ik finde ud af! det må gerne være med php kode også:-)



9 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
SELECT SUM(spilletid),spillernavn FROM ????? GROUP BY spillernavn


I øvrigt er en database en eller flere tabeller det du viser er en tabel, derfor er der ???? i ovenstående query fordi du ikke fortalte hvad navnet var på din tabel.

Din tabel enten forkert eller meget mystisk, spillernavn burde være i en spiller tabel og så burde der være et spillerid i den tabel du viste, hvis id er dette id skal spillernavn ikke være i den tabel du viser og den sql jeg skrev skal være.

SELECT SUM(spilletid),id FROM ????? GROUP BY id



Indlæg senest redigeret d. 24.09.2008 16:55 af Bruger #5620
SELECT COUNT(*) FROM mytable WHERE id='7'



Nestet, noget ala:

Select id, spillernavn, dato, spilletid, (select count(id) from kampe where id=spillere.id) as antalKampe from spillere, kampe



how, "kampe" behøver vist ikke være på 2 gange :) - Fjern den sidste



Nestet, noget ala:

Select id, spillernavn, dato, spilletid, (select count(id) from kampe where id=spillere.id) as antalKampe from spillere, kampe


Det bør ikke gøres med en subquery, men med et join. En subquery på den placering bliver kørt for hver række, et join derimod er langt mere effektivt.

SELECT id,spillernavn,dato,spilletid FROM spillere s JOIN kampe k ON k.id = s.id



der er kun en tabel som hedder "kampe", der er ikke nogen spillertabel derfor er navn også med i den... kunne nok være lavet mere elegant:-)
"id" er key og bruges ik til andet...




Indlæg senest redigeret d. 24.09.2008 17:17 af Bruger #10467
og jeg kan ik rigtig få den til at vise det i php...



altså jeg vil gerne have det som:

spillernavn kampe
spiller 1 43
spiller 2 160
osv



luk



t