Götz: (MySQL) Problem bei Abfrage über mehrere Tabellen (Klaus)

Beitrag lesen

Hallo zusammen,

es ist wohl hilfreich, wenn ich einfach das Ausgangsposting nochmal poste, nur daran hatte ich vorher garnicht sofort gedacht:
<originalthread>
Hallo,

ich habe ein Problem mit einer Abfrage, die über mehrere Tabellen geht.

In einer Haupttabelle stehen neben sonstigen Informationen der Erfasser und auch der Bearbeiter. Beide mit Ihrer Personalnummer.
In einer Personalstamm-Tabelle stehen dann die dazugehörigen Namen, Abteilung etc.
Nun möchte ich mir alle Einträge der Haupttabelle anzeigen lassen und natürlich die Namen der Erfasser und Bearbeiter.

Hierfür hab ich dann folgende Abfrage versucht:

select a.*,b.vorname as erf_vorname,b.name as erf_name,c.vorname as b_vorname,c.name as b_name from haupttabelle as a left join personen as b on a.erfasser = b.personalnummer left join personen as c on a.bearbeiter = c.personalnummer

Die Abfrage funktioniert prima, wenn immer ein Erfasser und auch ein Bearbeiter angegeben sind.
Leider trifft das auf letzteres nicht immer zu und im Feld Bearbeiter steht (noch) eine Null.
Da in der Personen-Tabelle leider auch zahlreiche Einträge ohne Personalnummer geführt werden, werden nun alle diese Einträge aufgelistet.

Wie kann ich die Abfrage dahingehend abändern, dass nur der erste gefundene genommen wird oder die Suche erst gar nicht durchgeführt wird, wenn Bearbeiter noch Null enthält?

Danke und Gruß,

Euer Klaus.
</originalthread>

Viele Grüße,
Götz