Axel Richter: (MySQL) Abfrage-Problem

Beitrag lesen

Hallo,

ich habe die folgende Abfrage definiert:

SELECT a. * , b.vorname, b.name, b.verantwortlich, c.bezeichnung, c.farbe

^Diese Lücke ist hier falsch.

FROM (
mitarbeiter AS b
LEFT JOIN urlaubdaten AS a ON a.personalnummer = b.personalnummer
)
LEFT JOIN urlaubarten AS c ON a.artnr = c.artnr
WHERE (
a.urlaubvon
LIKE '2004-%' OR a.urlaubbis
LIKE '2004-%'
) AND b.firma = 'Firma GmbH' AND b.abteilung = 'Einkauf'
ORDER BY a.personalnummer, a.urlaubvon

Diese Abfrage liefert mir leider nur diejenigen Mitarbeiter, die auch einen Eintrag in der Tabelle urlaubsdaten haben.

Das ist logisch. Bei Dir hat die Tabelle "urlaubdaten" den Alias a und Du willst doch ausdrücklich _nur_ Datensätze, bei denen gilt:

a.urlaubvon LIKE '2004-%' OR a.urlaubbis LIKE '2004-%'

Bei Datensätzen, die Werte in mitarbeiter, aber _keine_ Werte in urlaubdaten haban, haben diese Felder _beide_ den Wert NULL.

viele Grüße

Axel