Problem mit join über 3 Tabellen
Q.
- datenbank
0 shn0 Manu0 Vinzenz Mai0 Q.0 Vinzenz Mai0 Q.
Hi,
bin nmysql-Newbie.
Ich habe 3 Tabellen, die über jeweilige ID-Schlüssel miteinander verknüpft sind.
Spieler: SpielerID, Name, Vorname, Strasse, PLZ, usw. (Primary Key= SpielerID)
Verein: VereinsID, SaisonID, Vereinsname usw. (primary Key=VereinsID, key=SaisonID)
Vereinszugehörigkeit: VereinszugehörigkeitID, VereinsID, SpielerID, usw. (key = SpielerID und VereinsID)
Meine Abfrage soll folgendes Ergebnis bringen:
Wie müßte ich das die Abfrage gestalten?
Grüße, Q
Servus,
Wie müßte ich das die Abfrage gestalten?
Gegenfrage: Wofür die Verknüpfungstabelle (3)? Kann ein Spieler in mehreren Vereinen gleichzeitig sein?
Gruss
Patrick
Gegenfrage: Wofür die Verknüpfungstabelle (3)? Kann ein Spieler in mehreren Vereinen gleichzeitig sein?
Hallo Patrick,
nein, das kann er in meinem Fall nicht. Hm. Gute Frage, warum ich das ausgegliedert habe. Ich sach ja, Newbie.
Ich dachte halt, die Spieler gleich mit in die Vereinstabelle zu nehmen, würde unnötig Datenbalast mitschleppen??
Grüße, Q.
Mahlzeit,
Gegenfrage: Wofür die Verknüpfungstabelle (3)? Kann ein Spieler in mehreren Vereinen gleichzeitig sein?
Vielleicht nicht gleichzeitig ... aber - mittels entsprechenden Datumsfeldern - wäre so eine Art "Vereinshistorie" für jeden Spieler abbildbar. Vielleicht hat Q. sich ja so etwas dabei gedacht ...
MfG,
EKKi
Vielleicht nicht gleichzeitig ... aber - mittels entsprechenden Datumsfeldern - wäre so eine Art "Vereinshistorie" für jeden Spieler abbildbar. Vielleicht hat Q. sich ja so etwas dabei gedacht ...
Hi EKKI,
das war tatsächlich einer der Gedanken. Wäre selber nicht mehr drauf gekommen. Danke fürs Gedankenlesen :-))
Grüße, Q.
Hallo,
hast Du left joins versucht? Sollte so in etwa aussehen:
SELECT Spieler.SpielerID, Spieler.Name, Spieler.Vorname, Spieler.Strasse, Spieler.PLZ, Verein.VereinsID, Verein.SaisonID, Verein.Vereinsname, Vereinszugehörigkeit.VereinszugehörigkeitID, Vereinszugehörigkeit.VereinsID, Vereinszugehörigkeit.SpielerID
FROM Vereinszugehörigkeit
LEFT JOIN Spieler ON (Vereinszugehörigkeit.SpielerID = Spieler.SpielerID)
LEFT JOIN Verein ON (Vereinszugehörigkeit.VereinsID = Verein.VereinsID)
*ohne Gewähr, nicht getestet und außerdem bin ich totmüde ;)
Gruß,
Manu
Hallo
hast Du left joins versucht? Sollte so in etwa aussehen:
Nein, LEFT JOIN ist hier nicht angebracht, sondern INNER JOIN.
Freundliche Grüße
Vinzenz
Hallo
Meine Abfrage soll folgendes Ergebnis bringen:
- Alle Spielerdaten (also die einfache Abfrage von Tabelle1)
- Und den Vereinsnamen, der ja aber nur in Tabelle 3 steht und +ber die SpielerID über Tabelle 3, also der Vereinszugehörigkeitstabelle abgeleitet werden muß.
mein Artikel sollte Dir weiterhelfen.
Freundliche Grüße
Vinzenz
mein Artikel sollte Dir weiterhelfen.
Hallo Vinzenz,
habs analog zu Deinem Beispiel umgesetzt und erhalte genau das Resultat, was ich möchte.
Leider verstehe ich es trotzdem nicht ganz, warum das so funktioniert :-((
SELECT
SpielerName,
SpielerVorname,
VereinsName
FROM Spieler
INNER JOIN (Vereine
INNER JOIN Vereinszugehoerigkeit
ON Vereine.VereinsID = Vereinszugehoerigkeit.VereinsID)
ON Spieler.SpielerID = Vereinszugehoerigkeit.SpielerID
Grüße, Q.
Hallo Q,
mein Artikel sollte Dir weiterhelfen.
habs analog zu Deinem Beispiel umgesetzt und erhalte genau das Resultat, was ich möchte.
immerhin ein erster Erfolg.
Leider verstehe ich es trotzdem nicht ganz, warum das so funktioniert :-((
fang am besten bei Einführung in Joins von Rouven an - und arbeite Dich dann durch meine Fortgeschrittenen Jointechniken.
Freundliche Grüße
Vinzenz
fang am besten bei Einführung in Joins von Rouven an - und arbeite Dich dann durch meine Fortgeschrittenen Jointechniken.
Hi Vinzenz,
das sollte ich nochmal nachhaltig machen. Den Artikel von Rouven hatte ich zwar schon gelesen, aber am besten mach ich mir mal ein paar Tabellen auf Kärtchen. Irgendwie verliere ich sehr schnell den Überblick, wenn ich die Tabellen nicht immer wieder beim Artikellesen gegenlesen kann.
Grüße, Q.