I 3 Tabellen in Oracle-Datenbank abzubilden versuche:Oracle SQL Outer Left Rückkehr Join keine Zeilen
testHdr, testDet, testOther
testHdr ist der Header-Tabelle, ist testDet die Detailtabelle und testOther ist nur der Zusatztabelle, die ich brauchen, um ein paar Spalten zu bekommen.
Es ist möglich, dass Daten in testHdr vorhanden sind, aber nicht in testDet. Ich möchte entweder leer/null Wert von testDet zeigen, wenn es keinen Wert gibt.
Key testHdr zu testDet zur Karte ist adj_no und adj_no2
SELECT hdr.*, det.*, othr.*
FROM testHdr hdr, testDet det, testOther othr
where hdr.adj_no = det.adj_no (+)
and hdr.adj_no2 = det.adj_no2 (+)
and i.key3 = det.key3
and hdr.adj_no = '112'
* 112 nur Satzkopf hat aber keine Detailaufzeichnung
- Ich wünsche Daten erhalten hdr.adj_no = 112, wenn Es gibt Header-Daten wie 113, 114 usw., es wird nicht im Abfrageergebnis angezeigt.
versuchte ich die obige Abfrage mit äußeren leftjoin aber es zeigt:
ORA-01416: two tables cannot be outer-joined to each other
den adj_no Zustand bewegen, wo –
@AbhilashRVankayala Joinbedingung meinst du 'wo hdr.adj_no (+) = det.adj_no und hdr.adj_no2 = det.adj_no2 (+)' nach links? – hades
Nein, ich habe vorgeschlagen, wie Tim in der Antwort geschrieben hat. –