Für die meisten von euch, die halbwegs
SQL-bewandert sind, ist meine Frage sicherlich ziemlich banal. Da ich aber schon lange nicht mehr mit
SQL konfrontiert war, komme ich einfach nicht auf die richtige Lösung.
Ich habe eine simple Tabelle, z.B. "kunden", bestehend aus den Spalten "kunden_id" und "kundenname". Diese Tabelle wird von einer anderen genutzt mittels Fremdschlüssel. Nennen wir sie "bestellungen". Einer Bestellung kann ein Kunde mittels Fremdschlüssel zugeordnet werden, muss aber nicht (Fremdschlüssel-Spalte darf also NULL sein).
Nun möchte ich mittels
SQL alle Bestellungen abfragen und gleichzeitig dazu den zugehörigen Kundennamen, falls ein Kunde angegeben wurde. Wie mache ich das?
Bisher hab ich sowas immer in die WHERE-Klausel gepackt:
SQL-Code:
SELECT b.bestellungsnummer, k.kundenname
FROM bestellungen b, kunden k
WHERE b.kunden_id = k.kunden_id;
Nur wenn jetzt in der Tabelle "bestellungen" mal kein Kunde angegeben ist, wird diese Bestellung übersprungen. Sie soll aber trotzdem zurück gegeben werden, dann halt mit leerem Namensfeld. Wie geht das nochmal? Sicherlich trivial, aber ich komm nicht drauf.