![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: PHP
SQL: Wieviele Teile gehören zum Ganzen?
Hallo :)
Ich habe ein kleines Problem in SQL. Ich habe insgesamt drei Tabellen: League(level,index,name) Team(id,townid,name) LeagueTeam(level,index,townid,teamid) Jetzt brauche ich eine SQL-Abfrage die mir folgendes Ergebnis ausspuckt: TeamsInLeague(level,index,town,teamcount) Also wieviele Teams wurden der Liga zugeordnet. Habs mitfolgender Anfrage versucht:
Code:
Passt solange mehr als 0 Teams in der Liga sind.
SELECT l.level, l.index, lt.townid, count( * ) teamcount
FROM League l LEFT JOIN LeagueTeam lt ON lt.level = l.level AND lt.index = l.index GROUP BY l.level, l.index Aber wenn 0 Teams in der Liga sind, bekomme ich für teamcount trotzdem 1. irgendwie muss ich anders arbeiten mit dem count(*) aber ich komm nicht drauf wie:( Habt Ihr ne Idee? PS: Mit Sub-Select wäre es mir prinzipiell klar wie es geht,einfach ein zweites select in das count reinmachen, aber ich möchte es lieber mit join lösen, wenn möglich. |
AW: SQL: Wieviele Teile gehören zum Ganzen?
Muss das nicht ein INNER JOIN sein?
|
AW: SQL: Wieviele Teile gehören zum Ganzen?
beim inner join bekomm ich keine Einträge für die Ligen mit 0 Teams, die brauch ich allerdings eher als die Ligen die "voll" sind
|
AW: SQL: Wieviele Teile gehören zum Ganzen?
Ich verstehe die ganze Struktur nicht. Das sieht aus wie eine m:n-Beziehung, aber dazu müsste ein Team ja theoretisch in mehreren Ligen gleichzeitig spielen können. Vielleicht erläuterst Du das Ganze noch einmal kurz etwas ausführlicher.
|
AW: SQL: Wieviele Teile gehören zum Ganzen?
Naja zu einem Zeitpunkt ist ein Team immer nur in einer Liga, aber irgendwann steigt es mal auf oder ab und wechselt die Liga.
|
AW: SQL: Wieviele Teile gehören zum Ganzen?
Das ist mir schon klar, aber dann braucht man noch ein Datumsfeld (oder eine Saison-Kennzeichnung), oder willst Du alle Team-Liga-Zuordnungen, die jemals existiert haben?
|
AW: SQL: Wieviele Teile gehören zum Ganzen?
hmm.. stimmt eigentlich, ne saison wäre nicht verkehrt.. und die auswertung brauche ich dann natürlich für die aktuellste saison
Saison wäre dann eine Extra-Tabelle deren ID mit bei LeagueTeam dabei wäre. |
AW: SQL: Wieviele Teile gehören zum Ganzen?
Japp, das müsste stimmen (welches Team in welcher Saison in welcher Liga). Zusätzlich würde ich dann über diese 3 Felder noch einen UNIQUE-Index legen.
[edit] Quatsch, der Index müsste auf der Team-Saison-Kombination liegen, ohne Liga. [/edit] |
AW: SQL: Wieviele Teile gehören zum Ganzen?
Ja macht sinn da ienen unique index reinzumachen.
Ich probier mal bissl mit der neuen Tabelle rum,ob ich dadurch evtl auf ne gescheite Lösung für die Abfrage komme. :thumb: |
AW: SQL: Wieviele Teile gehören zum Ganzen?
Zitat:
Und die Tabelle "LeagueTeam" wird gelöscht und statt dessen die Tabelle "TeamHistory" erstellt.
Code:
table TeamHistory
======================================================= IdTeamHistory | IdTeam | IdLeague | DateFrom | DateTo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz