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, 26796 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 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 ...

Windows 10
WINDOWS 10 Startmenü Fehler nach Domain Join und GPO (11)

Frage von seltsam zum Thema Windows 10 ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...