johanoa: Datenbank - multilanguage - fallback

Beitrag lesen

Abend,

ich habe zwei Tabellen, in der einen steht an Stelle des Produktnamens (und anderen Spalten) nur eine Id.
Diese Id ist in der Sprach-Werte-Tabelle zu finden. Normalerweise sollte jede Id mit jeder Sprache als Zeile vorhanden sein. Dann wird über Id und Sprache der Wert ausgelesen.

Jedoch kann ich nicht sicherstellen, dass wirklich alle Sprachen (schon) existieren.

Also müsste ich meine gejointe Select-abfrage dahingegeb anpassen, dass er joint und die Sprache berücksichtigt, sollte diese aber nicht existieren soll die Standardsprache genommen werden. Wie kann ich soetwas realisieren?

id / lang / text
1 / de / Deutsch
1 / en / English
2 / de / Hallo

SELECT multilang.text
FROM multilang
INNER JOIN products
ON p.name = multilang.id
AND multilang.lang = SPRACHE

Hole ich id 1 auf English ist dies ja kein Problem. Bei id 2 hingegen schon. Hier soll er mir einfach de ausliefern.
Wie kann ich das bewerkstelligen?

Gruß