Ich bin mir nicht sicher, wie ich meine Tabellenstruktur beschreiben soll, also hoffe ich, dass dies Sinn macht...
Ich habe 3 Tabellen in hierarchischer Beziehung, so dass A eine Eins-zu-viele-Beziehung zu B hat, die wiederum eine Eins-zu-viele-Beziehung zu C hat. Der Trick ist, dass der Fremdschlüssel in B und C null sein darf (d. h. kein Elternteil definiert). Ich habe auch D und E, die keine Beziehung zu A, B oder C (direkt) haben.
Schließlich habe ich F, die eine Join-Tabelle mit vielen zu eins Beziehungen mit C, D und E ist. Keines ihrer Felder (FKs zu den anderen Tabellen) sind nullable.
Ich möchte eine SQL-Anweisung schreiben, die alle Tabellen in einer einzigen Ergebnismenge zusammenfasst. Ich weiß, dass ich Outer-Joins verwenden muss, weil ich möchte, dass alles von A zurückgegeben wird, unabhängig davon, ob es Kinder in B hat oder nicht, und ähnlich mit B und C.
Frage eins: Ich habe mir die ANSI-Syntax für die äußere Verknüpfung angesehen (ich habe bisher nur Oracle "(+)" verwendet) und kann kein Beispiel für eine äußere Verknüpfung von mehr als 2 Tabellen finden. Kann mir jemand ein Beispiel geben/zeigen?
Frage 2: Ist es möglich, Datensätze aus den Tabellen D und E auf der Grundlage der Verknüpfungstabelle F aufzunehmen? Wenn ja, wird dies mit Outer-Joins durchgeführt?
Danke!
EDIT
Natürlich habe ich gleich nach der Veröffentlichung dieses Artikels ein Beispiel gefunden, das Frage 1 beantwortet. Aber bei Frage 2 bin ich immer noch ratlos.
Ejemplo:
SELECT A.a,
B.b,
C.c
FROM A
FULL OUTER JOIN B ON B.a = A.a
FULL OUTER JOIN C ON C.b = B.b