Hallo franz!
Wenn ich nun die Tabelle Gewerk ausgeben lassen will, erhalte ich mit einem normalen SELECT * FROM gewerk aller
Felder, allerdings mit Personalnummer der Meister und Vertreter - wie schaffe ich es, dass dort
die Nachnamen, Vornamen stehen?
SELECT gewerk.gewerk_name,
gewerk.gewerk_vertreter,
personal.mit_nachname
FROM gewerk
LEFT JOIN personal
ON (gewerk_meister = personalnummer OR gewerk_vertreter = personalnummer)
GROUP BY personal.mit_nachname
ergebnis:
Ungestest und ohne Gewähr auf Richtigkeit:
Vorschlag A:
SELECT gewerk.gewerk_name,
gewerk.gewerk_meister,
a.mit_nachname AS 'Meister_Nachname',
gewerk.gewerk_vertreter,
b.mit_nachname AS 'Vertreter_Nachname'
FROM gewerk
LEFT JOIN personal AS a ON gewerk.gewerk_meister = a.personalnummer,
personal AS b ON gewerk_vertreter = b.personalnummer)
GROUP BY personal.mit_nachname
Vorschlag B:
SELECT gewerk.gewerk_name,
gewerk.gewerk_vertreter,
personal.mit_nachname
FROM gewerk
LEFT JOIN personal ON gewerk_vertreter = personal.personalnummer
GROUP BY personal.mit_nachname
Es stimmt zwar, dass Müller und Franz Vertreter sind, aber Hans ist Meister - taucht aber auch auf.
Was willst du eigentlich nun? Zu jedem Wert der Spalte gewerk.gewerk_meister und gewerk.gewerk_vertreter jeweils die passenden Nachnamen aus der Tabelle personal verknüpft mit der Spalte personal.personalnummer? Bzw. die Nachnamen von Meister und Vertreter oder nur die der Vertreter deren Personalnummern in der Tabelle gewerk stehen?
Grüsse,
Sky