Hallo zusammen,
ich bin gerade dabei, eine SQL-Abfrage zu realisieren und komme nicht so ganz weiter. Folgendes Problem:
Ich will zwei Bezeichnungen eines Artikels aus der Tabelle ‚artikel‘ lesen. Funktioniert mit folgendem weniger komplizierten Statement auch ganz gut:
SELECT bez1, bez2 FROM artikel WHERE id=‚123‘
Jetzt habe ich noch eine Tabelle ‚uebersetzung‘, in der die Übersetzungen der Bezeichnungen in verschiedene Sprachen stehen. Der Schlüssel ist dabei jeweils die deutsche Bezeichnung. Um die Übersetzungen beider Bezeichnungen zu bekommen, habe ich zwei Joins verwendet:
SELECT a.bez1, u1.ueb AS ueb1, a.bez2, u2.ueb AS ueb2
FROM artikel a
LEFT OUTER JOIN uebersetzung u1
ON (a.bez1=u1.key)
LEFT OUTER JOIN uebersetzung u2
ON (a.bez2=u2.key)
WHERE a.id=‚123‘ AND u1.SPRACHE=‚E‘ AND u2.SPRACHE=‚E‘
Funktioniert soweit auch noch ganz gut. Jetzt mein Problem: Wenn zu einer Bezeichnung keine Übersetzung existiert, fällt der Artikel aus der Ergebnismenge heraus. Das soll natürlich nicht sein. Am liebsten hätte ich, das z.B. a.bez1 zurückgegeben wird wenn keine Übersetzung (ueb1) dazu existiert. Ansonsten eben die Übersetzung ueb1. Ich hoffe mein Problem ist verständlich. Ich bin mir nur nicht sicher, ob das überhaupt mit einem SQL-Statement zu machen ist.
Gruß
Jodus