JOIN aber wie?

oudintsov

Benutzer
Beiträge
5
Hallo,

ich bin ein Anfänger in MySQL und habe folgendes Problem. Ich habe zwei Tabellen
Tabelle_1
Tabelle_1.PNG


und Tabelle_2
Tabelle_2.PNG

Ich möchte jetzt die Tabelle_1 so ausgeben dass anstelle Mit_Gegner_Sportler_1_ID und
Mit_Gegner_Sportler_2_ID die Werte aus Tabelle_2 stehen, jeweils Wettkampf_Sportler_Name und Wettkampf_Sportler_Vorname.

Ich habe schon mit JOIN rumprobiert aber ohne Erfolg. Das ist doch mit JOIN lösbar? oder ist das der falscher Weg?
Vielen Dank!
 

Anhänge

  • Tabelle_1.PNG
    Tabelle_1.PNG
    21,7 KB · Aufrufe: 1
  • Tabelle_2.PNG
    Tabelle_2.PNG
    5,2 KB · Aufrufe: 1
Werbung:
select Mit_Gegner_Datum, Wettkampf_Sportler_Name, Wettkampf_Sportler_Vorname from Mit_Gegner join Wettkampfmannschaft on Mit_Gegner_Sportler_1_ID = Sportler_ID on Mit_Gegner_Sportler_2_ID = Sportler_ID

bringt Fehlermeldung
SQL Fehler (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'on Mit_Gegner_Sportler_2_ID = Sportler_ID' at line 1
 
ohne Komma
select Mit_Gegner_Datum, Wettkampf_Sportler_Name, Wettkampf_Sportler_Vorname from Mit_Gegner join Wettkampfmannschaft on Mit_Gegner_Sportler_1_ID = Sportler_ID Mit_Gegner_Sportler_2_ID = Sportler_ID
= gleicher Fehler

mit Komma
select Mit_Gegner_Datum, Wettkampf_Sportler_Name, Wettkampf_Sportler_Vorname from Mit_Gegner join Wettkampfmannschaft on Mit_Gegner_Sportler_1_ID = Sportler_ID, Mit_Gegner_Sportler_2_ID = Sportler_ID
=neuer fehler

SQL Fehler (1146): Table 'segelfisch.Mit_Gegner_Sportler_2_ID' doesn't exist
 
Groß/Kleinschreibung von Bezeichnern bei MySQL ist je nach verwendetem OS kritisch. Setz die Join-Conditions mal in Klammern, also (Mit_Gegner_Sportler_1_ID,Mit_Gegner_Sportler_2_ID) = (Sportler_ID,Sportler_ID). Und wenn Du die eine Tabelle mehrfach joinen willst/mußt dann mach das auch und verwendet Aliase.
 
Vielleicht so:

select Mit_Gegner_Datum, Wettkampf_Sportler_Name, Wettkampf_Sportler_Vorname from Mit_Gegner join Wettkampfmannschaft on Mit_Gegner_Sportler_1_ID = Sportler_ID AND Mit_Gegner_Sportler_2_ID = Sportler_ID
 
Ungetestet:

select Mit_Gegner_Datum, Wettkampf_Sportler_Name, Wettkampf_Sportler_Vorname
from Mit_Gegner
join Wettkampfmannschaft
on Mit_Gegner_Sportler_1_ID = Sportler_ID
UNION ALL
select Mit_Gegner_Datum, Wettkampf_Sportler_Name, Wettkampf_Sportler_Vorname
from Mit_Gegner
join Wettkampfmannschaft
on Mit_Gegner_Sportler_2_ID = Sportler_ID
 
Werbung:
So geht's:

SELECT Mit_Gegner_Datum, Wettkampf_Sportler_Name, Wettkampf_Sportler_Vorname FROM Mit_Gegner JOIN Wettkampfmannschaft ON Mit_Gegner_Sportler_1_ID AND Mit_Gegner_Sportler_2_ID = Sportler_ID;

Vielen Dank!
 
Zuletzt bearbeitet:
Zurück
Oben