franz: Probleme mit LEFT JOIN (mySQL)

Beitrag lesen

Servus!

kriege eine bestimmte LEFT JOIN Anweisung einfach nicht hin.

habe die Tabelle Gewerk:

gewerk_id   int(11)  Nein
gewerk_name   varchar(255) Nein
gewerk_meister   int(11)  Nein  0
gewerk_vertreter   int(11)  Nein  0
gewerk_angelegt   date Nein  0000-00-00
gewerk_ersteller   int(11)  Nein  0

Wie ihr seht gibt es pro Gewerk(Abteilung) einen Meister und einen Vertreter.

In den Spalten gewerk_meister und  gewerk_vertreter sind allerdings nicht die Namen gespeichert sondern deren Personalnummer. Welche auf

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?

Mit folgendem Statement, erhalte ich zwar Werte allerdings nicht die die gewünscht sind:

-------------------------------------------------------------------

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:

+-------------+------------------+--------------+
| gewerk_name | gewerk_vertreter | mit_nachname |
+-------------+------------------+--------------+
| Einkauf     |           119163 |       [NULL] |
| Vertrieb    |           116279 |       Müller |
| Werkstatt   |           109621 |         Hans |
| Produktion  |           109621 |        Franz |
+-------------+------------------+--------------+

Es stimmt zwar, dass Müller und Franz Vertreter sind, aber Hans ist Meister - taucht aber auch auf.

Danke für eure Hilfe!

gruß Franz