php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.10.2011, 15:47  
Neuer Benutzer
 
Registriert seit: 09.10.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
captaindoerk befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] GROUP BY mit UNION ALL im Subselect

Hallo zusammen,

folgende Aufgabenstellung: Die Tabelle 'Spiele' hält Ergebnisse vor. Ein Team besteht aus zwei Spielern, die nicht zwingend immer miteinander spielen. Ich möchte nun die Statistiken zu jedem einzelnen Spieler anzeigen (der Einfachheit halber zunächst nur die Anzahl Spiele, später auch Siege, Punkte usw.).

Folgender SELECT funktioniert:
Code:
SELECT Team1Sp1 AS SpielerID FROM Spiele
UNION ALL
SELECT Team1Sp2 AS SpielerID FROM Spiele
UNION ALL
SELECT Team2Sp1 AS SpielerID FROM Spiele
UNION ALL
SELECT Team2Sp2 AS SpielerID FROM Spiele
  ORDER BY SpielerID
Ich erhalte die erwartete Liste. Ich betrachte diese Datenmenge nun als Ausgangstabelle und möchte mittels GROUP BY darauf zugreifen:
Code:
SELECT SpielerID, COUNT(SpielerID) AS Anzahl
FROM 
(
  SELECT Team1Sp1 AS SpielerID FROM Spiele
  UNION ALL
  SELECT Team1Sp2 AS SpielerID FROM Spiele
  UNION ALL
  SELECT Team2Sp1 AS SpielerID FROM Spiele
  UNION ALL
  SELECT Team2Sp2 AS SpielerID FROM Spiele
) A
  GROUP BY A.SpielerID
  ORDER BY A.SpielerID
Ich erhalte im Ergebnisfenster.. nichts. Keine Liste, keine Anzeige, nicht einmal einen Fehler. Die MySQL Version ist 5.0.51a-24+lenny5-log. Offenbar geht es so nicht.

Wie bekomme ich den SELECT (möglichst ohne den Umweg "zweiter SELECT im PHP verheiratet") gestemmt? Oder liegt es an der MySQL-Version?

Bin für jede Hilfe dankbar. Besten Dank im voraus!

Schöne Grüße
Dirk
captaindoerk ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.10.2011, 17:28  
Neuer Benutzer
 
Registriert seit: 09.10.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
captaindoerk befindet sich auf einem aufstrebenden Ast
Standard

Boah, nä wie fies. Hab den Fehler gefunden. Richtig lautet die Abfrage:
Code:
SELECT SpielerID, COUNT(SpielerID) AS Anzahl
FROM 
(
  SELECT Team1Sp1 AS SpielerID FROM Spiele
  UNION ALL
  SELECT Team1Sp2 AS SpielerID FROM Spiele
  UNION ALL
  SELECT Team2Sp1 AS SpielerID FROM Spiele
  UNION ALL
  SELECT Team2Sp2 AS SpielerID FROM Spiele
) AS A
  GROUP BY A.SpielerID
  ORDER BY A.SpielerID
Es fehlte das "AS" hinter der Klammer. Was zwei Buchstaben manchmal ausmachen.
captaindoerk ist offline   Mit Zitat antworten
Alt 09.10.2011, 20:09  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Hätte ich jetzt nicht gedacht (schon gar nicht ohne Meldung). Deswegen benutze ich immer AS und immer Backticks.

Und nun, wo Du so weit bist, kannst Du Dich dem wichtigen widmen
Zitat:
Zitat von mermshaus
Datenmodell wegwerfen und vernünftig neu machen...
Die UNION Lösung ist nämlich totaler Müll.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch 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
Union und das Limit... stockii Datenbanken 5 10.02.2011 11:26
UNION mit Abhängigkeiten coola Datenbanken 4 20.12.2010 09:59
[Erledigt] Union Select Ergebnisse zuordnen kn0wledge PHP Tipps 2010 6 09.08.2010 18:50
[Erledigt] Intertabellarische Berechnungen, wie? dave303 Datenbanken 13 05.03.2010 11:58
[Erledigt] DISTINCT-artiges GROUP BY-Problem redox Datenbanken 6 26.02.2010 11:50
[Erledigt] Union Select im Insert Befehl Dark Guardian Datenbanken 2 10.12.2009 16:35
[Erledigt] select() method zend sum() ohne group by cosmicadi PHP Tipps 2009 1 29.04.2009 18:26
Where Anweisung vor GROUP BY einbinden. Kronic73 Datenbanken 6 06.03.2009 09:40
[Erledigt] GROUP BY Reihenfolge stefanjann Datenbanken 4 02.12.2008 14:53
MySQL UNION ALL mit LEFT JOIN? familyman Datenbanken 4 09.10.2008 12:15
Abfrage mit count, order by, group by...und Probleme BartTheDevil89 Datenbanken 2 15.06.2008 13:34
UNION und GROUP BY stefanjann Datenbanken 9 12.12.2006 11:28
[Erledigt] UPDATE und Subselect??? Datenbanken 2 31.01.2006 19:06
UNION in einem Subquery Datenbanken 0 26.10.2005 13:24
Anhand Union Spalte aus anderen Tabellen selekt. und sort. Datenbanken 1 02.08.2005 11:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php union all group by, group by über zwei union, union group by, group by in union all, union and group by, group by union, union all group by, union all order by, tabelle in einen subselect einbinden, select in subselect union all, union all order, mysql union all datenbanken, subselect php, subselect group by, zend union count(*), group by all, php select union-all, select aus datenbank mit union all, zend select \union all\, select union group by

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