Einzelnen Beitrag anzeigen

Gor1

Registriert seit: 11. Mai 2011
32 Beiträge
 
Delphi 10.4 Sydney
 
#1

SQL-Abfrage über mehrere Tabellen

  Alt 23. Mai 2012, 07:24
Datenbank: Firebird • Version: 2.5 • Zugriff über: AnyDAC
Hallo,

ich habe mehrere Tabellen mit Texten (eine Tabelle pro Sprache), die über eine Verknüpfungs-Tabelle miteinander in Beziehung stehen.
Jede Sprach-Tabelle besteht dabei aus einem Index und dem zugehörigen Text (z.B. Tabelle_DE: Index_DE Text_DE, Tabelle_EN: Index_EN Text_EN ...).
Die Verknüpfungs-Tabelle hat folgende Spalten:
Index_VK Index_DE Index_EN, Index_FR, Index_IT

Ich suche jetzt eine SQL-Abfrage, die mir für jede Zeile der Verknüpfungstabelle einen Datensatz liefert, in dem die Indizes durch die zugehörigen Texte ersetzt sind, also:
Index_VK Text_DE Text_EN Text_FR Text_IT

Als Schwierigkeit kommt noch hinzu, dass manche Texte in manchen Sprachen gar nicht übersetzt sind, also der Index in der Verknüpfungstabelle Null ist.

Ich habe schon versucht, das mit JOIN hinzubekommen, aber leider bleibt sowohl Delphi als auch Flamerobin beim Versuch hängen, die SQL-Abfrage zu bearbeiten.
Hier mal wie ich es versucht habe:
SELECT de.TEXT_DE, en.TEXT_EN, fr.TEXT_FR, it.TEXT_IT
FROM Tabelle_DE de, Tabelle_EN en, Tabelle_FR fr, Tabelle_IT it
INNER JOIN Verknuepfungstabelle fl ON
((de.INDEX_DE = fl.INDEX_DE) or (fl.INDEX_DE is Null)) and ((en.INDEX_EN = fl.INDEX_EN) or (fl.INDEX_EN is Null)) and
((fr.INDEX_FR = fl.INDEX_FR) or (fl.INDEX_FR is Null)) and ((it.INDEX_IT = fl.INDEX_IT) or (fl.INDEX_IT is Null))

Leider bin ich bisher über die Suche im Forum nicht fündig geworden.

Schöne Grüße,
Georg
  Mit Zitat antworten Zitat