Das Umsetzen einer speziellen Abfrage über mehrere Tabellen scheitert:
Es existieren die drei Tabellen "Orte", "Strassen", "Hausnummern" mit dem Integer-Feld "ID" als Primär-Schlüssel. In "Strassen" gibt es ein Interger-Feld "OrteID" und in "Hausnummern" das Interger-Feld "StrassenID". Alle Tabellen haben zwei Datensätze mit der ID "0" und "1".
In einer Abfrage sind alle drei Tabellen hinzugefügt worden. Zwischen "Orte.ID" und "Strassen.OrteID" gibt es die Verbundeigenschaft, derart dass alle Daten aus "Orte" enthalten sind und die aus "Strassen", bei denen die Inhalte gleich sind. Zwischen "Strassen.ID" und "Hausnummern.StrassenID" gibt es eine Verbundeigenschaft, dass alle Daten aus "Strassen" enthalten sind und die aus "Hausnummern", bei denen die Inhalte gleich sind.

- Adresse.jpg (36.58 KiB) 2210 mal betrachtet
Das Ausführen der Abfrage führt zu einem Fehler:
SQL-Status: 37000
Fehler-Code: -11
Unexpected token Orte, requires SELECT in statement
[SELECT "Orte".*, "Strassen".*, "Hausnummern".* FROM (
"Orte" LEFT OUTER JOIN "Strassen"
ON
"Orte"."ID" = "Strassen"."OrteID"
)
LEFT OUTER JOIN "Hausnummern"
ON
"Strassen"."ID" = "Hausnummern"."StrassenID"
]
An welcher Stelle wird ein SELECT erwartet?
Es funktioniert ohne die dritte Tabelle "Hausnummern", also nur mit "Orte" und "Strassen".
Es funktioniert, wenn der Verbund zwischen "Orte" und "Strassen" auf "innere" umgelegt wird:
SELECT "Orte".*, "Strassen".*, "Hausnummern".* FROM {
OJ "Strassen" LEFT OUTER JOIN "Hausnummern"
ON
"Strassen"."ID" = "Hausnummern"."StrassenID"
},
"Orte" WHERE (
"Orte"."ID" = "Strassen"."OrteID"
)
Ist der 1:[0..n]:[0..n]-Ansatz falsch?
Ist die Umsetzung in SQL falsch?
Scharschi
OOoPortable 2.1