Der folgende Beitrag wurde am 18. 10. 2005, 13:40 Uhr von Vritz veröffentlicht.
Hallo,
Ich habe eine mysql Datenbank und möchte nun damit Games testen.
Es existieren die 3 Tabellen (Für dieses Problem)
Game 1:n Test n:1 Status
Wie gestalte ich jetzt die Abfrage so, dass _alle_ Spiele einmal angezeigt bekomme, auch wenn diese mehrere tests bzw. mehrere Staten(Statenänderungen) bekommen haben?
Also jedes Spiel nur einmal!
Danke und Gruss
Vritz mit V!
Der folgende Beitrag wurde am 18. 10. 2005, 14:27 Uhr von Cheatah veröffentlicht.
Hi,
> Game 1:n Test n:1 Status
> Wie gestalte ich jetzt die Abfrage so, dass _alle_ Spiele einmal angezeigt bekomme, auch wenn diese mehrere tests bzw. mehrere Staten(Statenänderungen) bekommen haben?
> Also jedes Spiel nur einmal!
selektiere nur die Game-Tabelle. Wenn Du auch z.B. die Anzahl der Tests und den besten Status erhalten möchtest, verwende Gruppenfunktionen und ggf. Outer Joins.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
Der folgende Beitrag wurde am 18. 10. 2005, 15:55 Uhr von Vritz veröffentlicht.
Hallo
> selektiere nur die Game-Tabelle. Wenn Du auch z.B. die Anzahl der Tests und den besten Status erhalten möchtest, verwende Gruppenfunktionen und ggf. Outer Joins.
Wenn ich aber nun via Checkboxen nur die Besten ausselektieren will, also WHERE Status = "Excellent", jedoch diese können einen alten Status beinhaltet, zB. der von letztes Jahr da fand ich das Spiel Status = "Traurig".
Er soll also nur den neusten Status, aller Staten anzeigen, jedoch jedes Spiel anzeigen, welches diese ausgesuchten Staten hat.
Danke und Gruss
Vritz
Der folgende Beitrag wurde am 18. 10. 2005, 16:05 Uhr von Cheatah veröffentlicht.
Hi,
> > selektiere nur die Game-Tabelle. Wenn Du auch z.B. die Anzahl der Tests und den besten Status erhalten möchtest, verwende Gruppenfunktionen und ggf. Outer Joins.
> Wenn ich aber nun via Checkboxen nur die Besten ausselektieren will, also WHERE Status = "Excellent", jedoch diese können einen alten Status beinhaltet, zB. der von letztes Jahr da fand ich das Spiel Status = "Traurig".
> Er soll also nur den neusten Status, aller Staten anzeigen, jedoch jedes Spiel anzeigen, welches diese ausgesuchten Staten hat.
verwende Gruppenfunktionen, inklusive der zugehörigen GROUP BY- und HAVING-Klauseln.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
Der folgende Beitrag wurde am 18. 10. 2005, 17:09 Uhr von Daniela Koller veröffentlicht.
Hi Cheatah
> verwende Gruppenfunktionen, inklusive der zugehörigen GROUP BY- und HAVING-Klauseln.
Das geht nicht, das übliche: ich hätte gerne den passenden Wert zu einem speziellen Wert aus einer Aggregatsfunktion. Dazu braucht es Subselects.
SELECT spiel, max(datum), bewertung passend zum max datum
....
HAVING bewertung = ....
scheitert daran, dass man nicht die passende Bewertung zum Datum kriegt.
Gruss Daniela
Der folgende Beitrag wurde am 18. 10. 2005, 18:21 Uhr von Cheatah veröffentlicht.
Hi,
> Das geht nicht, das übliche: ich hätte gerne den passenden Wert zu einem speziellen Wert aus einer Aggregatsfunktion.
welchen "den" Wert? Wer sagt, dass es nur einen gibt?
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
Der folgende Beitrag wurde am 18. 10. 2005, 19:07 Uhr von Daniela Koller veröffentlicht.
Hi Cheatah
> welchen "den" Wert? Wer sagt, dass es nur einen gibt?
Niemand, du hast aber keine Chance auch nur an einen passenden Wert zu kommen.
Gruss Daniela
Der folgende Beitrag wurde am 18. 10. 2005, 21:59 Uhr von Cheatah veröffentlicht.
Hi,
> > welchen "den" Wert? Wer sagt, dass es nur einen gibt?
> Niemand, du hast aber keine Chance auch nur an einen passenden Wert zu kommen.
worauf ich hinaus wollte: Oft wird davon ausgegangen, dass es nur einen betreffenden Datensatz gibt, an den man dann erwartungsgemäß trivial rankommen müsste. Es gibt aber keine technische Grundlage für diese Beschränkung einer Gruppenfunktion. Mehr noch, das Ergebnis der Gruppenfunktion hat überhaupt keine Verbindung zu einem bestimmten Datensatz.
Allerdings sehe ich in der Fragestellung auch nicht, wo sowas gefordert wäre.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
Der folgende Beitrag wurde am 18. 10. 2005, 22:59 Uhr von Daniela Koller veröffentlicht.
Hi Cheatah
> worauf ich hinaus wollte: Oft wird davon ausgegangen, dass es nur einen betreffenden Datensatz gibt, an den man dann erwartungsgemäß trivial rankommen müsste. Es gibt aber keine technische Grundlage für diese Beschränkung einer Gruppenfunktion. Mehr noch, das Ergebnis der Gruppenfunktion hat überhaupt keine Verbindung zu einem bestimmten Datensatz.
Was genau das wäre, was ich an deiner Antwort bemängelt habe. Es gibt keinerlei Möglichkeit mit Group By und Having an den gewünschten Datensatz (sprich, das beste Ergebnis des neuesten Tests zu einem bestimmten Spiel zu erhalten) zu kommen.
Select spiel, max(datum), max(ergebnis)
...
group by spiel
bringt, genau, das neueste Datum und das beste Ergebnis überhaupt, unabhängig vom Datum.
Select spiel, max(datum), max(ergebnis)
...
group by spiel
having max(datum)
bring, genau, Syntaxfehler.
Die Aufgabenstellung lässt sich nur mit Subselects lösen, sie liese sich selbst dann nur so lösen, wenn Datum und Ergebnis in einer 1:1 Beziehung stünden.
Dein Tipp mit GROUP BY und HAVING war also für die Katz und geht genau von dem von dir bemängelten Szenario aus. Damit ist es _nicht_ lösbar.
Gruss Daniela
Der folgende Beitrag wurde am 18. 10. 2005, 16:06 Uhr von wahsaga veröffentlicht.
hi,
> Wenn ich aber nun via Checkboxen nur die Besten ausselektieren will, also WHERE Status = "Excellent", jedoch diese können einen alten Status beinhaltet, zB. der von letztes Jahr da fand ich das Spiel Status = "Traurig".
Könntest du daraus bitte mal einen Satz machen, der in der deutschen Sprache einen Sinn ergibt?
gruß,
wahsaga
--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4