SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.11.2009, 21:40:17
nupp nupp ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 54
Beiträge: 3
group by limitieren

Hi Forum,

ich bin neu hier und wohl betriebsblind... zumindest finde ich keine Lösung.


Ich habe eine Tabelle 'times', in der Zeiten (score) in Millisekunden für verschiedene "challenges" weggeschrieben werden.


Felder: playerID, challengeID, score, date


So, jetzt möchte ich die kürzesten Zeiten sortiert nach challengeID und score ausgegeben haben

Meine Query funktioniert auch soweit:

Code:
SELECT playerID, challengeID, min(score), date 
FROM times 
GROUP BY challengeID, score 
ORDER BY challengeID, score
Jetzt möchte ich aber von jeder challengeID jeweils nur die 10 kürzesten Zeiten haben - da komme ich nicht weiter.

Gibt es sowas wie ein LIMIT, das nur auf GROUP BY angewendet wird?
Hat jemand eine Idee?

Danke für jede Antwort
Mit Zitat antworten
  #2  
Alt 26.11.2009, 22:49:40
buggies buggies ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 44
Beiträge: 6
AW: group by limitieren

Also,

SELECT *
FROM `benutzerdaten`
GROUP BY akt_state
LIMIT 2

funktioniert bei mir. Es werden nur 2 der akt_states ausgegeben...
Das müsste doch in etwas das sein, was du suchst, oder hab ich dich falsch verstanden?
Mit Zitat antworten
  #3  
Alt 26.11.2009, 22:59:14
nupp nupp ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 54
Beiträge: 3
AW: group by limitieren

Zitat:
Zitat von buggies Beitrag anzeigen
Also,

SELECT *
FROM `benutzerdaten`
GROUP BY akt_state
LIMIT 2

funktioniert bei mir. Es werden nur 2 der akt_states ausgegeben...
Das müsste doch in etwas das sein, was du suchst, oder hab ich dich falsch verstanden?
Hm ja, leider - oder ich habe mich nicht klar ausgedrückt xD

Also von 'challengeID' kann es beliebig viele geben, sagen wir zb. 200
Ich möchte nun die JEWEILS 10 kürzsten Ergebnisse (score) von jeder challengeID ausgegeben bekommen

Das Ergebnis müssten dann 2.000 Zeilen sein, je zehn von einer der 200 challengeID's, sortiert nach challengeID und score wird ja schon.

LIMIT x gibt ja dann auch nur die ersten x Zeilen aus.
Ich brauche ein LIMIT aber bezogen auf die bereits sortierten challengeID's, nicht auf das gesamte result.
Mit Zitat antworten
  #4  
Alt 26.11.2009, 23:16:15
buggies buggies ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 44
Beiträge: 6
AW: group by limitieren

Ok.. jetzt hab ichs glaub ich verstanden :P

Folgendes könnte vielleicht funktionieren...
hab leider grad keine passende Tabelle zum ausprobiern ;)
Code:
(SELECT * FROM times WHERE challengeid = '1' ORDER BY score LIMIT 10)
union all
(SELECT * FROM times HWERE challengeid = '2' ORDER BY score LIMIT 10)
[...]
Is halt n bissl unschön, da du alle challengeids einzeln auflisten musst...
spontan hab ich keine Idee, ob/wie sich das optimieren lässt :)
Mit Zitat antworten
  #5  
Alt 27.11.2009, 09:22:51
nupp nupp ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 54
Beiträge: 3
AW: group by limitieren

hi buggies,

ja das ist natürlich ein Ansatz, das Problem ist nur, dass challengeID nicht bekannt ist, weil laufend neue hinzukommen können.
Mit Zitat antworten
  #6  
Alt 27.11.2009, 16:19:10
buggies buggies ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 44
Beiträge: 6
AW: group by limitieren

Ok... dann is des net die optimale Lösung...

außer....
Nein ich sprechs nicht aus! NEIN! na gut, ok ;)
deine Anwendung könnte ja erst mal ne Abfrage auf die IDs machen und dann die UNION zusammenbasteln....


Aber irgendwie hab ich im Hinterkopf dasses (zumindest in Oracle) ne möglichkeit gibt, 2 Abfragen zu schachteln, und in der Inneren auf die Werte der äußeren zugreifen...

Ich schau mal ob ichs in meinen Unterlagen find. Vielleicht gibts sone funktionalität ja auch in mysql...
Mit Zitat antworten
Antwort

Stichworte
group by


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Group By mit max() renesan MySQLi/PDO/(MySQL) 1 09.07.2009 09:16:08
Using filesort / temporary - JOIN, GROUP BY, ORDER BY ryda MySQLi/PDO/(MySQL) 4 08.05.2009 23:06:05
Günstigster Preis mit GROUP WAY_KOW MySQLi/PDO/(MySQL) 0 11.10.2007 08:15:26
Subquery und GROUP BY Heinrich MySQLi/PDO/(MySQL) 2 10.06.2007 23:42:28
Problem mit GROUP bei mySQL-Abfrage c4 PHP für Fortgeschrittene und Experten 0 03.06.2003 17:33:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:24:14 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt