| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 14.06.2009
Beiträge: 1.723
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Das scheint doch eine Anwendung von within-group aggregates zu sein. - http://www.artfulsoftware.com/infotree/queries.php#101 Ich denke, eine Möglichkeit wäre so: Code: SELECT
z.disziplin,
z.streckenid,
z.zeit,
z.veranstaltungsid
FROM
zeiten AS z
INNER JOIN
(
SELECT
subz.disziplin,
subz.streckenid,
MIN(subz.zeit) AS min_zeit
FROM
zeiten AS subz
WHERE
subz.sportlerid = 10
GROUP BY
subz.disziplin,
subz.streckenid
) AS sub
ON
z.zeit = sub.min_zeit
AND
z.disziplin = sub.disziplin
AND
z.streckenid = sub.streckenid
ORDER BY
z.disziplin ASC,
z.streckenid ASC
Hat ein Sportler eine identische Bestzeit in einer Disziplin auf einer Strecke mehrfach erreicht, sollten alle Einträge Teil der Ergebnismenge sein. Die Schwierigkeit bei solchen Problemstellung ist für mich immer, zu erkennen, was alles nicht relevant ist. |
| | |
| | ||||||
| Erfahrener Benutzer Registriert seit: 14.06.2009
Beiträge: 1.723
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Na ja, das Konzept habe ich ja verlinkt. Ich habe für mein Beispiel die Variante gewählt, die ich zu dem Zeitpunkt am besten verstanden habe. Die muss nicht optimal sein. Zitat:
Ich glaube aber, deine Query funktioniert höchstens zufällig (also nicht definiert). Ich bin mir nicht absolut sicher, was die Dokumentation sagt, aber ich meine, dass in einem GROUP-BY-Statement alle Felder, über die nicht gruppiert wird und die nicht mit einer Aggregate-Funktion (MIN, MAX, …) versehen sind, grundsätzlich einen undefinierten Wert enthalten. Anders gesagt: Der Ansatz mit der vorhergehenden Sortierung kann bei der aktuellen DBMS-Version klappen, aber es ist nicht auszuschließen, dass der Algorithmus dahinter bei einer anderen Versionen verändert wird. Das ist also auf Sand gebaut. (Wie gesagt, ich bin mir nicht absolut sicher, ob das Verhalten definiert ist oder nicht.) Zitat:
Zitat:
Zitat:
| |||||
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| OUTER JOIN Abfrage, die evtl. keine Treffer zurückgeben könnte | noop | Datenbanken | 1 | 27.01.2011 20:23 |
| [Erledigt] JOIN über 3 Tabellen + 2 m:n Tabellen | dennis81 | Datenbanken | 7 | 08.12.2010 15:36 |
| [Erledigt] left join problem | Bernd-m | Datenbanken | 9 | 24.08.2009 13:52 |
| JOIN und LEFT JOIN verbinden? | Dynamite53 | Datenbanken | 8 | 15.05.2009 15:16 |
| [Erledigt] select() method zend sum() ohne group by | cosmicadi | PHP Tipps 2009 | 1 | 29.04.2009 18:26 |
| Persistence Framework | #Avedo | Software-Design | 37 | 28.03.2009 17:32 |
| Where Anweisung vor GROUP BY einbinden. | Kronic73 | Datenbanken | 6 | 06.03.2009 09:40 |
| Bräuchte hilfe bei schleifenproblem innerhalb SQL anweisung | Kronic73 | Datenbanken | 8 | 01.03.2009 01:10 |
| [Erledigt] GROUP BY Reihenfolge | stefanjann | Datenbanken | 4 | 02.12.2008 14:53 |
| [Erledigt] mit einer CHECKBOX feld nach mehreren wörtern durchsuchen | taurus | Datenbanken | 20 | 01.12.2008 10:49 |
| [Erledigt] Left join und inner join | stefanjann | Datenbanken | 7 | 16.10.2008 15:45 |
| INNER JOIN, GROUP BY und ... schwer zu erklären | abyss | Datenbanken | 2 | 15.06.2008 00:55 |
| Problem mit Inner join | Jabi | Datenbanken | 15 | 09.05.2006 14:10 |
| inner join aus db | PHP Tipps 2006 | 8 | 22.01.2006 01:23 | |
| [Erledigt] Irgendein Join oder doch nur GROUP ??? | Datenbanken | 7 | 12.10.2005 13:08 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| join nach group by |