n'abend,
- Könntest Du mir versuchen, mit Worten die select-Anweisung zu umschreiben? Ich raffs leider nicht, würde es aber gerne, damit ich nicht beim nächsten ähnlichen Problem wieder fragen muß.
SELECT
S.SpielerID,
S.SpielerName,
VZ.VereinsName,
B.BewertungenFach,
B.BewertungenLiga_o_Laender,
B.BewertungenPaarung,
B.BewertungenNote,
B.BewertungenBemerkung
/* Wir wählen die Felder, die unsere Query zurückliefern soll. Wir geben für jedes Feld den vollen Bezeichner (Tabellenname.Feldname oder Tabellenalias.Feldname ) an, da wir mit multiplen Tabellen hantieren und sicherstellen möchten, dass wir auch das korrekte Feld in der korrekten Tabelle erwischen. Immerhin ist es möglich, dass mehrere Tabellen gleichnamige Felder beinhalten. */
FROM tabelle_Spieler S
/* Wir brauchen eine Basis, von welcher wir unsere Grunddaten (die Spieler, um die es hier ja geht) beziehen können. */
JOIN tabelle_Vereinszugehoerigkeit VZ
/* Die Spieler-Tabelle enthält keine Informationen über Vereinszugehörigkeiten, vermutlich weil ein Spieler in mehreren Vereinen sein kann. Da wir aber nur die Spieler eines bestimmten Vereins betrachten wollen, müüssen wir uns die Vereinszugehörigkeiten verfügbar machen. */
ON ( VZ.SpielerID = S.SpielerID AND VZ.VereinsID = 2 )
/* Ein JOIN ist die Verbindung von Datensätzen aus der einen Tabelle mit Datensätzen aus einer anderen. In der ON-Bedingung eines Joins gibt man an, wie die Datensätze miteinander zu verknüpfen sind. In unserem Fall handelt es sich einfach um die SpielerID, die wir in der Spieler-Tabelle ja vorliegen haben. Da wir aber nicht zu jedem Spieler den Verein brauchen - wir wollen schliesslich nur die Spieler eines einzelnen Vereins betrachten - schränken wir die Menge der Spieler der Vereine ein. Nämlich genau auf die, die dem Verein angehören, den wir betrachten (Verein = 2) */
LEFT JOIN tabelle_Bewertungen B
/* Wir brauchen den LEFT JOIN, weil wir auch die Spieler haben wollen, die noch keine Bewertung kassiert haben */
ON ( B.SpielerID = S.SpielerID )
LIMIT 0, 30
Du möchtest dir außerdem die beiden Artikel von Rouven und Vinzenz anschauen: Einführung in Joins und fortgeschrittene Jointechniken. Die beiden erklären dir, wie das mit der JOINerei so von statten geht... ;)
- In Deiner Anweisung steht "select VereinsName, was auch gut und schön wäre, leider gibt das nen mysql-fehler, da der Vereinsname nur in der Tabelle "Verein" steht und die VereinsID zusammen mit der SpielerID die Tabelle Vereinszugehoerigkeit bildet.
Kann man die Anweisung noch so umstricken, daß anstelle (oder zusätzlich zur) der VereinsID der VereinsName ausgespuckt wird?
Ein JOIN mit der Tabelle, die VereinID nach VereinName auflösen kann, wird deinem Problem Abhilfe schaffen. Allerdings solltest du erst mal selbst versuchen diesen weiteren kleinen JOIN in die obige Query einzubauen. »Man hilft den Menschen nicht, wenn man für sie tut, was sie selbst tun können« (A. Lincoln)
weiterhin schönen abend...
--
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|