Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Left Join in Oracle

Frage Entwicklung Datenbanken

Mitglied: PizzaHouse

PizzaHouse (Level 1) - Jetzt verbinden

24.09.2007, aktualisiert 26.09.2007, 26807 Aufrufe, 4 Kommentare

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.
Mitglied: Biber
24.09.2007 um 15:30 Uhr
Moin PizzaHouse,

01.
SELECT * FROM tabelle1 t1  
02.
 LEFT JOIN (tabelle2 t2 left join tabelle3 t3 ON t2.spalte3=t3.spalte3)  
03.
           on t2.spalte2=t1.spalte2  
04.
WHERE t1.spalte1='wert1'
Gruß
Biber
Bitte warten ..
Mitglied: PizzaHouse
25.09.2007 um 11:53 Uhr
hi biber,

super, vielen dank!

hab mich leider vertan, da fehlt noch eine Tabelle, wobei ich leider wieder über die Verschachtelung gestolpert bin.

SELECT * FROM tabelle1 t1
LEFT JOIN (tabelle t2 LEFT JOIN (tabelle3 t3 LEFT JOIN tabelle4 t4 ON t3.spalte3=t4.spalte3))
ON t2.spalte2=t1.spalte2
WHERE t1.spalte1='wert1'

ORA-00905: missing keyword
Bitte warten ..
Mitglied: Biber
25.09.2007 um 14:31 Uhr
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.
01.
Select t1.* from tabelle1 t1, tabelle2 t2, tabelle3 t3,tabelle4 t4 
02.
Where t1.spalte2 = t2.Spalte2 
03.
AND   t3.spalte3 = t4.spalte3 
04.
AND t1.spalte1='wert';
[das würde auch wirklich einem "INNER JOIN" entsprechen.]

Anders ausgedrückt: es fehlt eine komplette Zeile "...ON t2.feldx=t3.feldX"
01.
SELECT * FROM tabelle1 t1  
02.
LEFT JOIN (tabelle t2 LEFT JOIN (tabelle3 t3 LEFT JOIN tabelle4 t4 ON t3.spalte3=t4.spalte3)) 
03.
ON t2.spalteX=t3.spalteX <---------------------die fehlt 
04.
ON t2.spalte2=t1.spalte2  
05.
WHERE t1.spalte1='wert1'
[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
Bitte warten ..
Mitglied: PizzaHouse
26.09.2007 um 10:21 Uhr
klappt alles jetzt wunderbar, nochmal vielen dank!

seltsamer weise wollte die oracle abschließend die klammern nicht akzeptieren, ganz ohne hingegen ging´s. Oo
Bitte warten ..
Ähnliche Inhalte
Datenbanken
ORACLE DB Abfrage (5)

Frage von Marabunta zum Thema Datenbanken ...

Datenbanken
Oracle drops its flagship database into the Docker Store (5)

Link von Frank zum Thema Datenbanken ...

Windows Server
gelöst WDS - mit optionalen Domain Auto-join? (1)

Frage von JiggyLee zum Thema Windows Server ...

Datenbanken
gelöst Join über drei Tabellen (5)

Frage von Kimaro zum Thema Datenbanken ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Viren und Trojaner
Ransomware .nm4 (14)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

iOS
16 iPads zentrall verwalten (14)

Frage von simonlohr zum Thema iOS ...

Microsoft Office
+1.000 Ordner in Outlook: Wie besser? (11)

Frage von Matsushita zum Thema Microsoft Office ...