webForumDet fria alternativet

Summera resultat från tabell

PHP

2 svar · 191 visningar · startad av FlashX

Medlem sedan nov. 19991 033 inlägg
Frågan#1

Vilket sätt är smidigast att lösa detta på?

Har en tabell med t.ex följande kolumner:

hemmalag	bortalag	hlagpoäng	blagpoäng	hlagmål	blagmål

och innehållet ser ungefär ut så här

lag1	lag2	3	0	4	1
lag3	lag4	1	1	2	2
lag2	lag5	0	3	2	4
lag1	lag4	1	1	1	1

Hur gör jag enklast om jag vill skapa en lista utifrån detta som visar varje lags totala poäng och mål. Alltså en resultatlista som sortera efter flest poäng.
Ska allt fixas med PHP eller finns det någon bra funktion i mysql som kan fixa delar av detta när jag gör frågan till databasen.

Behöver ingen komplett kod utan mest en spark i rätt riktning...

[Redigerat av FlashX den 09 aug 2001]

Medlem sedan dec. 200012 464 inlägg
#2

Med den tabellstruktur du har och med de begränsningar som finns i Mysql så ser jag inte hur man får ihop det med en fråga. (Om dom hade haft stöd för union och select i from-listan så hade det inte varit så svårt.)

Att få ut poäng och mål för alla hemmalag kan man göra med denna fråga

 select sum(hpoäng) as points,
        sum(hmål) as goals,
        hemmalag
  group by hemmalag

Och så kan göra motsvarande för bortalag. Ett sätt är att lägga in resultatet av dessa två frågor i en temptabell och gruppera i den tabellen.

------------------
essentitia preter non sans multiplicandum

Medlem sedan nov. 19991 033 inlägg
#3

Tack för svaret :)
Misstänkte att det troligen inte skulle gå så lätt. Gjorde till slut en php-fil som tar han om "hemmahalvan" och skickar in datan i en ny tabell och sedan plussar på tabellen med resultatet från "bortahalvan".
Antar att det är ungefär som du rekommenderade :)
Blir en del frågor för sql-servern men sluttabellen blir dessto lättare att hantera för vidare bearbetning.

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)