Left Join in Oracle
SQL Syntax in Oracle
I. Die folgende Abfrage:
SELECT * FROM tabelle1 t1 LEFT JOIN (tabelle2 t2, tabelle t3) ON (t2.spalte2=t1.spalte2 AND t2.spalte3=t3.spalte3) WHERE t1.spalte1='wert1'
II. ist eine theoretische Erweiterung von:
SELECT * FROM tabelle1 t1 LEFT JOIN tabelle2 t2 ON (t2.spalte2=t1.spalte2) WHERE t1.spalte1='wert1'
In Ausgabe von II. stehen in t2.spalte3 z.b. Usernamen, die in t3.spalte3 zu Realnamen aufgelöst werden sollen.
-->Oracle 9i - Fehler:
ORA-00907: missing right parenthesis
Als Oracle-Rookie seh´ ich da leider net durch, wo der Fehler ist, hat jmd einen Tipp?
Gruß,
PH.
I. Die folgende Abfrage:
SELECT * FROM tabelle1 t1 LEFT JOIN (tabelle2 t2, tabelle t3) ON (t2.spalte2=t1.spalte2 AND t2.spalte3=t3.spalte3) WHERE t1.spalte1='wert1'
II. ist eine theoretische Erweiterung von:
SELECT * FROM tabelle1 t1 LEFT JOIN tabelle2 t2 ON (t2.spalte2=t1.spalte2) WHERE t1.spalte1='wert1'
In Ausgabe von II. stehen in t2.spalte3 z.b. Usernamen, die in t3.spalte3 zu Realnamen aufgelöst werden sollen.
-->Oracle 9i - Fehler:
ORA-00907: missing right parenthesis
Als Oracle-Rookie seh´ ich da leider net durch, wo der Fehler ist, hat jmd einen Tipp?
Gruß,
PH.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 69371
Url: https://administrator.de/contentid/69371
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
4 Kommentare
Neuester Kommentar
Moin PizzaHouse,
rein biooptisch gescannt sieht es von hier aus danach aus, dass tabelle t2 an einem LEFT JOIN beteiligt sein soll, ohne dass ein t2-Feld daran Anteil hat.
Es gibt keine logische Verbindung zwischen (Tabelle t1-joinedWith-t2) zu (t3 geJoint mit t4).
Schreib es um, dann siehst du es.
[das würde auch wirklich einem "INNER JOIN" entsprechen.]
Anders ausgedrückt: es fehlt eine komplette Zeile "...ON t2.feldx=t3.feldX"
[hier müsste es aber "INNER JOIN" heißen, wenn "Inner Joins" gewollt sind
Aber Überschrift und Inhalt des Postings liefen halt von Anfang an auseinander.]
Grüße
Biber
rein biooptisch gescannt sieht es von hier aus danach aus, dass tabelle t2 an einem LEFT JOIN beteiligt sein soll, ohne dass ein t2-Feld daran Anteil hat.
Es gibt keine logische Verbindung zwischen (Tabelle t1-joinedWith-t2) zu (t3 geJoint mit t4).
Schreib es um, dann siehst du es.
Select t1.* from tabelle1 t1, tabelle2 t2, tabelle3 t3,tabelle4 t4
Where t1.spalte2 = t2.Spalte2
AND t3.spalte3 = t4.spalte3
AND t1.spalte1='wert';
Anders ausgedrückt: es fehlt eine komplette Zeile "...ON t2.feldx=t3.feldX"
SELECT * FROM tabelle1 t1
LEFT JOIN (tabelle t2 LEFT JOIN (tabelle3 t3 LEFT JOIN tabelle4 t4 ON t3.spalte3=t4.spalte3))
ON t2.spalteX=t3.spalteX <---------------------die fehlt
ON t2.spalte2=t1.spalte2
WHERE t1.spalte1='wert1'
Aber Überschrift und Inhalt des Postings liefen halt von Anfang an auseinander.]
Grüße
Biber