Normale abfrage in Group by Klause
Blackwane
- datenbank
Hallo,
wie ist es möglich bei einer Group by Klause abfrage, eine normale Abfrage einzubinden?
Hier mal meine MYSQL Abfrage:
SELECT SUM( globalScore ) AS summe_globalScore, SUM( kubradamWins ) AS summe_kubradamWins
FROM stat_playerAtt
NATURAL JOIN stat_Maps
Da möchte ich jetzt noch gerne diese Normale Abfrage mit einbinden
SELECT goldStar, nick FROM stat_playerAwardMedals, stat_playerAtt WHERE stat_playerAwardMedals.pid = stat_playerAtt.pid ORDER BY goldstar DESC
Hat da vieleicht jemand eine Idee?
Gibt es bei Group by klause auch eine Möglichkeit, das er nicht mit der Abfrage macht? Also er macht ja mit zb. SUM( globalScore ). Da rechnet er ja alles zusammen. Und ich bräuchte eine funktion wo er nichts macht. Also
Ohne Fuktion( globalScore )
Schwer zuerklären :D
Ich möchte einfach eine Normale Abfrage da mit einbinden.
Ich hoffe jemand hat eine Idee.
Vielen Dank
mfg Blackwane
yo,
wie ist es möglich bei einer Group by Klause abfrage, eine normale Abfrage einzubinden?
in aller regel über korrelierte unterabfragen. du hast übrigens vergessen zu erwähnen welches versiob du von mysql benutzt und auch keine ttestdaten geliefert, macht es immer schwieriger. ausserdem benutzt du die implizite schreibeise von joins. das hier ließt sich wesentlich leichter.
SELECT goldStar, nick
FROM stat_playerAwardMedals pm
INNER JOIN stat_playerAtt pa ON pa.pid = pm.pid
ORDER BY goldstar DESC
;
aber nun zu deiner frage, hast du in der ersten abfrage uns die GROUP BY klausel unterschlagen oder gibt es keine ?
Ilja
Hi,
in aller regel über korrelierte unterabfragen. du hast übrigens vergessen zu erwähnen welches versiob du von mysql benutzt und auch keine ttestdaten geliefert, macht es immer schwieriger. ausserdem benutzt du die implizite schreibeise von joins. das hier ließt sich wesentlich leichter.
SELECT goldStar, nick
FROM stat_playerAwardMedals pm
INNER JOIN stat_playerAtt pa ON pa.pid = pm.pid
ORDER BY goldstar DESC
;
Stimmt, habe ich vergessen, SRY:
MySQL - 5.0.32-Debian_7etch10-log
Werde das nächste mal den TExt so einbinden.
aber nun zu deiner frage, hast du in der ersten abfrage uns die GROUP BY klausel unterschlagen oder gibt es keine ?
Meine GROUP BY klausel, die ich verwende ist SUM()
mfg BLackwane
yo,
Meine GROUP BY klausel, die ich verwende ist SUM()
SUM() ist eine aggregatfunktion und keine GROUP BY klausel. wie dem auch sei, was noch fehlt sind beispieldaten, bzw. wie das gewünschte ergebnis aussehen soll. die erste abfrage mit der SUM() funktion liefert dir immer einen datensatz zurück. die andere abfrage kann aber durchaus mehrere datensätze zurück liefern. dadurch dass du keine GROUP BY klausel einsetzt, korreliert die unterabfrage auch nicht.
die frage ist nun, wo willst du in vielen datensätze mit dem einen datensatz kombinieren. man kann ihn mit UNION ALl anhägen oder aber auch in der projektion unterbringen. dann hätte quasi jeder datensatz, den die zweite abfrage zurück liefert die summen mit dazu.
Ilja
Okay ich versuche mal zu erklären warum und wofür ich die Abfrage brauche.
Also ich habe eine Clan Statisitk erstellt, wo alle Summen zusammen gerechnet werden.
Was auch Problemlos läuft.
Ich habe insgesamt 3 Abfragen in eine erstellt. ALso es werden bei meiner Abfrage 3 Tabellen abgefragt.
Die Ausgabe der Summen sind auf 8 Tabellen verteilt.
In der Tabelle 7 Brauche ich jetzt aber eine Normale Abfrage ohne SUM().
Wenn ich jetzt über der 7ten Tabelle eine Normale SQL abfrage mache. Dann bekomme ich bei der 8ten Tabelle keine Ausgabe mehr, was ja Logisch ist.
Und genau aus diesem Grund möchte ich die Abfrage da mit einbinden.
Ich hoffe jetzt ist es ein bisschen besser zuverstehen.
Hier nochmal ein Beispiel:
MYSQL Abfrage
Tabelle 1
Tabelle 2
Tabelle 3
Tabelle 4
Tabelle 5
Tabelle 6
Tabelle 7 <- Da brauche ich die Normale Abfrage ohne SUM()
Tabelle 8
Oder Gibt es eine Möglichkeit die Abfrage über der 7ten Tabelle zumachen, ohne das die anderen Tabellen von der ersten SQL Abfrage gestört werden?
Das hier ist meine Fertige Abfrage die ich jetzt da mit einbinden muss. Ohne das es da zu Problemen mit der ersten MYSQL Abfrage kommt.
$ergebnis=mysql_query("SELECT goldStar, nick FROM stat_playerAwardMedals, stat_playerAtt WHERE stat_playerAwardMedals.pid = stat_playerAtt.pid ORDER BY goldstar DESC");
while($ausgabe=mysql_fetch_object($ergebnis))
{
$goldStar=$ausgabe->goldStar;
$nick=$ausgabe->nick;
}
Ich hoffe jetzt hast du alle Infos von mir :D
mfg Blackwane
yo,
Wenn ich jetzt über der 7ten Tabelle eine Normale SQL abfrage mache. Dann bekomme ich bei der 8ten Tabelle keine Ausgabe mehr, was ja Logisch ist.
was daran logisch sein soll, entzieht sich mir meiner kentniss. warum sollte eine abfrage einfluss auf die ergebnissse einer anderen abfrage haben ?
Ich hoffe jetzt ist es ein bisschen besser zuverstehen.
ganz und gar nicht, deine beschreibung ist sehr verwirrend und ich vermute dein problem ist sehr trivial. ich kann es noch mal wiederholen, du machst uns das leben wesentlich einfacher, wenn du uns informationen über die relevanten tabellen gibst und vor allem beispieldaten, sprich welchen daten sind in den tabllen, wie soll das gewünschte ergebnis aussehen ! ausserdem habe ich die vermutung, dass du bei deiner erläuterung tabellen aus der datenbank und tabellen aus html code miteinander vermischt, sehe ich das richtig ?
Oder Gibt es eine Möglichkeit die Abfrage über der 7ten Tabelle zumachen, ohne das die anderen Tabellen von der ersten SQL Abfrage gestört werden?
wie kommst du nur auf diese idee, dass sie "gestört" werden, kannst du das genauer erläutern, was du damit meinst ? und verwende bitte die explizite join schreibweise, das macht das lesen und warten von sql abfragen einfacher.
Ilja
Hi,
wie kommst du nur auf diese idee, dass sie "gestört" werden, kannst du das genauer erläutern, was du damit meinst ?
ich habe den Wald vor lauter Bäumen nicht gesehn *lol*
Ich kann ihne Probleme eine Mysql Abfrage dazwischen packen. Vorher hatte es aber nicht funktioniert, da muss ich dann wohl ein Fehler drin gehabt haben.
Ich danke dir für deine Hilfe
mfg Blackwane