Non sono sicuro di come descrivere la mia struttura della tabella, quindi spero che questo ha un senso ...Come fare Outer Join su> 2 tavoli (Oracle)
Ho 3 tabelle in relazione gerarchica tale che A ha una relazione uno a molti con B che a sua volta ha una relazione uno a molti con C. Il trucco è che la chiave esterna in B e C può essere nullo (cioè nessun genitore definito). Ho anche D ed E senza relazione con A, B o C (direttamente).
Infine, ho F che è una tabella di join con molte relazioni uno con C, D ed E. Nessuno dei suoi campi (FK alle altre tabelle) sono annullabili.
Vorrei scrivere un'istruzione SQL che unisce tutte le tabelle in un unico set di risultati. So che devo esterno utente entra perché voglio tutto ad un restituito a prescindere se sia o non ha figli in B e simili con B e C.
Domanda uno: Sono stato a guardare al esterna ANSI join sintassi (ho usato solo Oracle "(+)" prima) e non riesco a trovare un esempio che outer unisce più di 2 tabelle. Qualcuno può fornire/indicare un esempio?
Domanda n .: È possibile includere record dalle tabelle D ed E in base alla tabella F join? Se è così, questo è fatto con join esterni?
Grazie!
EDIT
Naturalmente, subito dopo ho questo post, ho trovato un esempio che risponde alla domanda 1. Tuttavia, la domanda 2 ancora mi ha messo in difficoltà.
Esempio:
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
Probabilmente non vuoi FULL OUTER JOIN; esiste, ma è usato molto di rado (o utile). –
Non hai specificato quali colonne in F si uniscono a ciascuna delle altre tabelle, il che significa che nessuno può dare una risposta definitiva. –
Potresti pubblicare alcuni dati di esempio e il recordset che vorresti ottenere? A, B's an C non sono nomi molto istruttivi. – Quassnoi