php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.09.2004, 14:33  
Gast
 
Beiträge: n/a
Standard Group by sortieren ?

Hallo Zusammen,

Ich wäre froh, wenn mir jemand helfen könnte. Hänge jetzt schon einige Tage fest.

Ich habe zwei Mysql Tabellen spiele und stats mit dem Inhalt:

Tabelle spiele:

datum | home | gegner | nr

Tabelle stats

datum | name | punkte


Erklärung: Was ich bis jetzt gemacht habe

Ich habe die zwei Tabellen mit dem Befehl left join verbunden und nach dem Datum gruppiert, weil ich auch die Ausgabe von der Tabelle spiele brauche, wenn keine Werte in der Tabelle stats mit dem selben Datum vorhanden sind.

Jetzt habe ich die die Tabelle spiele mit ORDER BY sortiert nach nr. Soweit funktioniert alles.

Aber jetzt kommt mein Problem, denn ich möchte, dass es eine bestimmten Wert aus der Tabelle stats nimmt, nämlich dieser wo, der Wert punkte maximal ist.

Aber ich schaffe es nur, dass es das Feld punkte sortiert und nicht den dazugehörigen Namen.

Ich hoffe ich habe es einigermassen verständlich formuliert. Kann mir jemand helfen?


Gruss PrinceT
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.09.2004, 14:50  
Gast
 
Beiträge: n/a
Standard

Warum trennst du die Tabellen überhaupt?

Mach doch eine Tabelle mit den Spalten

datum | home | home_punkte | gegner | gegner_punkte | nr

Ein Spiel hat doch schließlich nur ein Punkteergebnis, oder irre ich mich da?
  Mit Zitat antworten
Alt 13.09.2004, 15:04  
Gast
 
Beiträge: n/a
Standard Sorry

Sorry ich habe es nicht richtig ausgedrückt.

Zu jedem Spiel gibt es zum Beispiel 5 einträge in der Stats Tabelle.

So zum Beispiel sieht ein Eintrag aus:

spiele
090904 | Berlin | Hamburg | 1

stats
090904 | Eric | 12
090904 | Max | 9
090904 | Thomas | 5
090904 | Bob | 14
090904 | Miles | 22


Jetzt soll es ausgeben:

090904 | Berlin | Hamburg | 1 | Miles | 22


Bei mir gibt es jetzt aber nicht Miles sonder Eric aus also so:

090904 | Berlin | Hamburg | 1 | Eric | 22
  Mit Zitat antworten
Alt 13.09.2004, 15:25  
Gast
 
Beiträge: n/a
Standard

Da du deine bisherigen querys nicht gepostet hast, versuche ich es einfach mal so.

Code:
sql = "SELECT a.datum, a.home, a.gegner, a.nr, b.name, b.punkte FROM spiele a LEFT JOIN stats b ON a.datum = b.datum GROUP BY a.datum ORDER BY b.punkte"
Was kommt da raus?
  Mit Zitat antworten
Alt 13.09.2004, 15:35  
Gast
 
Beiträge: n/a
Standard Danke

ja genau das habe ich bis jetzt auch. Aber jetzt kommt das raus:

090904 | Berlin | Hamburg | 1 | Eric | 22

Also der Name wird nicht mit sotiert!
  Mit Zitat antworten
Alt 13.09.2004, 15:45  
Gast
 
Beiträge: n/a
Standard

Und was kommt dabei raus?

Code:
sql = "SELECT a.datum, a.home, a.gegner, a.nr, b.name, b.punkte FROM stats b LEFT JOIN spiele a ON a.datum = b.datum GROUP BY a.datum ORDER BY b.punkte"
Ich habe lediglich die Reihenfolge der Tabellen ausgetauscht.
  Mit Zitat antworten
Alt 13.09.2004, 15:49  
Gast
 
Beiträge: n/a
Standard

Hilft auch nichts, gibt immer noch den falschen Namen zu den richtigen Punkten aus.

Und es geht auch nicht, weil es dann nicht mehr alle Spiele ausgibt, wo es noch keine Stats in der Datenbank hat.
  Mit Zitat antworten
Alt 13.09.2004, 15:55  
Gast
 
Beiträge: n/a
Standard

Hmm, dann weis ich auch nicht weiter.
  Mit Zitat antworten
Alt 13.09.2004, 15:59  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Mit dieser Abfrage gibts ja auch keine vernünftige Gruppierung. Aber die willst du ja auch nicht, sondern nur das Maximum. Versuch mal
PHP-Code:
sql "SELECT a.datum, a.home, a.gegner, a.nr, b.name, b.punkte 
    FROM spiele a 
    LEFT JOIN stats b ON a.datum = b.datum   
    ORDER BY b.punkte DESC
    LIMIT 1"

Wenn du mit "GROUP BY" arbeitest, erhälst du für jedes nicht in der GROUP BY-Klausel stehende Attribut einen Zufallswert, bzw. den erst möglichen ("Eric"). Deshalb verbieten gute DBMS-Systeme auch solche Abfragen.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 13.09.2004, 16:07  
Gast
 
Beiträge: n/a
Standard

Geht auch nicht! Gibt mir wieder Eric statt Miles zurück.

Dann geht das mit Mysql garnicht, weil ich nur das sotieren kann, wo bei Group by steht ?
  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
Abfrage mit count, order by, group by...und Probleme BartTheDevil89 Datenbanken 2 15.06.2008 13:34
Dateien sortieren Lavalampe PHP Tipps 2008 10 02.05.2008 15:47
Array Werte sortieren eLement PHP Tipps 2008 9 30.03.2008 22:39
Min - Max auch ohne GROUP BY tekknotrip Datenbanken 6 17.04.2007 11:06
DECIMAL lässt sich nicht mit ORDER BY sortieren buggybugga Datenbanken 4 07.07.2006 15:43
[Erledigt] ftp_nlist sortieren PHP-Fortgeschrittene 1 19.02.2006 17:34
Sortieren mit buchstabe und zahl Unkaputtbar2 Datenbanken 3 17.02.2006 11:49
string in array sortieren... Dave Waterstone PHP Tipps 2005-2 4 07.09.2005 08:06
Sortieren nach GROUP BY Datenbanken 5 03.09.2005 03:12
Problem beim Sortieren PHP Tipps 2005-2 5 29.06.2005 07:00
[Erledigt] probleme beim MIN() (Group BY) 18inch Datenbanken 2 31.12.2004 11:54
mehrere COUNT() mit verschiedenen GROUP BY -- geht das? tapferesschneiderlein Datenbanken 0 08.09.2004 14:54
assoc-array sortieren lassen PHP Tipps 2004 10 26.06.2004 16:06
Inhalt einer datei Sortieren ???? PHP Tipps 2004 12 21.06.2004 22:56
Sortieren nach Timestamp Datenbanken 5 01.06.2004 16:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php order by group by, group by sortieren, group by ergebnis ordnen, group by sortieren werte, php sort mit group by, group by ergebnis sortieren, group by ordnen, datenbank sotieren group by, datum und name group by, php group by

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:11 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.