php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.04.2005, 00:19  
Benutzer
 
Registriert seit: 18.11.2004
Beiträge: 56
Gumfuzi
Standard die meisten Punkte pro Spiel abfragen

Hi Leute!

Wie kann ich bei einer Tabelle die meisten "score" pro "game_name" auslesen, sodaß ich pro Spiel den Besten Spieler herausfinde?

Dieser Code gibt zwar pro Spiel einen Wert, aber eben nicht den höchsten...
Code:
SELECT game_name, player, max(score) as hiscore, date FROM `phpbb_ina_scores`
GROUP BY game_name
ORDER BY hiscore DESC, date ASC
Danke für eure Hilfe!
Gumfuzi ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.04.2005, 01:13  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

geht über group by nicht

less dir mal den thread hier durch, das müsste deinem problem weiterhelfen:

http://www.phpfriend.de/ftopic35602-0-asc-0.html
robo47 ist offline   Mit Zitat antworten
Alt 03.04.2005, 10:44  
Benutzer
 
Registriert seit: 18.11.2004
Beiträge: 56
Gumfuzi
Standard

Hi!

ich habe mal folgendes probiert:
Code:
SELECT test.game_name, test.player, test.score
FROM `phpbb_ina_scores` test, `phpbb_ina_scores` t2
LEFT JOIN t2 ON (t2.game_name = test.game_name
AND t2.player = test.player
AND t2.score > test.score)
WHERE t2.score is null
ORDER BY game_name
dann komt die Meldung:
Zitat:
#1066 - Not unique table/alias: 't2'
Habe die SQL-Version 3.23.58, darum diese Variante.
Was muss ich ändern, damit es klappt?
Gumfuzi ist offline   Mit Zitat antworten
Alt 03.04.2005, 10:51  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Der zweite Tabellenname gehört in die JOIN-Klausel:
Code:
SELECT test.game_name, test.player, test.score
FROM phpbb_ina_scores test
LEFT JOIN phpbb_ina_scores t2  ON (t2.game_name = test.game_name
                                   AND t2.player = test.player
                                   AND t2.score > test.score)
WHERE t2.score is null
ORDER BY game_name
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 03.04.2005, 11:46  
Benutzer
 
Registriert seit: 18.11.2004
Beiträge: 56
Gumfuzi
Standard

hmmm, damit passiert bei mir gar nichts, d.h. es kommt kein Ergebnis. Entweder, diese Formel ist zu aufwändig oder es gibt so Probs, wobei normale Abfragen funzen...
Gumfuzi ist offline   Mit Zitat antworten
Alt 03.04.2005, 11:50  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

schreib ma vor das game_name am ende ein "test." vor
Buhmann ist offline   Mit Zitat antworten
Alt 03.04.2005, 12:03  
Benutzer
 
Registriert seit: 18.11.2004
Beiträge: 56
Gumfuzi
Standard

damit tut sich auch nix...
Gumfuzi ist offline   Mit Zitat antworten
Alt 04.04.2005, 08:42  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Hab mir das Ganze nochmals angesehen. Ich weiss zwar nicht, warum meine Abfrage mit der Ergänzung von Buhmann nicht funktionieren soll. Aber wenn du das Datum nicht brauchst, dann müsste es sehr wohl auch mit einer GROUP BY-Klausel gehen:
Code:
SELECT game_name, player, max(score) as hiscore 
FROM phpbb_ina_scores
GROUP BY game_name, player
ORDER BY hiscore DESC
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 04.04.2005, 20:27  
Benutzer
 
Registriert seit: 18.11.2004
Beiträge: 56
Gumfuzi
Standard

Zitat:
Zitat von lazydog
Hab mir das Ganze nochmals angesehen. Ich weiss zwar nicht, warum meine Abfrage mit der Ergänzung von Buhmann nicht funktionieren soll. Aber wenn du das Datum nicht brauchst, dann müsste es sehr wohl auch mit einer GROUP BY-Klausel gehen:
Code:
SELECT game_name, player, max(score) as hiscore 
FROM phpbb_ina_scores
GROUP BY game_name, player
ORDER BY hiscore DESC
das zeigt mir mehrere Ergebnisse pro Spiel an - ich brauche immer das höchste.

Code:
SELECT test.game_name, test.player, test.score
FROM `phpbb_ina_scores` test, `phpbb_ina_scores` t2
LEFT JOIN t2 ON (t2.game_name = test.game_name
AND t2.player = test.player
AND t2.score > test.score)
WHERE t2.score is null
ORDER BY game_name
da kommt dann:
Zitat:
#1066 - Not unique table/alias: 't2'
und bei:
Code:
SELECT test.game_name, test.player, test.score
FROM `phpbb_ina_scores` test, `phpbb_ina_scores` t2
LEFT JOIN t2 ON (t2.game_name = test.game_name
AND t2.player = test.player
AND t2.score > test.score)
WHERE t2.score is null
ORDER BY test.game_name
kommt auch:
Zitat:
#1066 - Not unique table/alias: 't2'
BTW: der Server hatte gestern Probs, darum tat sich nix...

Woran liegt es? Dürfen die select-tabelle und die join-tabelle nicht gleich sein?

*edit*
ich versuche einen anderen Weg, die Scores gleich anders in eigenen Tabellen zu speichern, dann habe ich das Prob erst gar nicht...
Danke vorerst mal für eure Hilfe!!!!
Gumfuzi ist offline   Mit Zitat antworten
Alt 05.04.2005, 08:23  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Wenn die Gruppierung nur über das Game gehen soll, dann muss auch der Join nur über diese Feld gehen:
Code:
SELECT test.game_name, test.player, test.score
FROM phpbb_ina_scores test
LEFT JOIN phpbb_ina_scores t2  ON (t2.game_name = test.game_name
                                   AND t2.score > test.score)
WHERE t2.score is null
ORDER BY test.game_name
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PDO und parallele Abfragen Normalo PHP Tipps 2008 1 09.06.2008 12:39
Berechnung über mehrere Abfragen aus mysql Slappi PHP Tipps 2008 2 18.12.2007 14:22
mehrere Abfragen (Selects) verbinden???? CIMM Datenbanken 15 03.05.2006 18:59
[Erledigt] Realsierungsproblem - Punkte über mehre Tage / Wochen PHP Tipps 2006 3 09.03.2006 18:11
Datentyp abfragen PHP Tipps 2006 7 24.02.2006 15:53
Karten Spiel shocky PHP Tipps 2006 10 16.02.2006 11:56
[Erledigt] 204 077 15-4 in DB mit WHERE als 204077154 abfragen Datenbanken 6 24.01.2006 11:47
punkte verbindung grafisch PHP Tipps 2007 1 30.11.2005 17:17
MySql abfragen durcheinander? MrCavity Datenbanken 19 16.11.2005 16:18
[Erledigt] Dateiendung abfragen PHP Tipps 2005-2 6 18.08.2005 17:11
URL abfragen abfangen PHP Tipps 2005 7 16.03.2005 16:07
nächstes spiel anzeigen? PHP-Fortgeschrittene 3 19.09.2004 15:45
[Erledigt] Formel1-Tippspiel durch PHP / MySQL Datenbanken 4 02.09.2004 21:07
Session, nach Link Klick Punkte gutschreiben ... PHP Tipps 2004 6 17.07.2004 17:00
Witze Off-Topic Diskussionen 7 09.07.2004 20:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
tippspiel punkte ausrechnen php, php punkte abfragen, meiste punkte pro spiel, sql tippspiel punkte speichern, meisten punkte pro spiel, spiele score abfragen, punkte abfrage php, meiste punkte in einem spiel, punkte pro spiel ausrechnen, abfragen das spiel, spiel abfrage, die meisten punkte in einem spiel, mysql abfrage am meisten punkte, pro-spiel.de, beste scores pro spiel, sql tippspiel punkte speichern oder berechnen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:57 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.